2008-05-25
工厂方法模式
关键字: 设计模式package com.spsoft.factorymethod;
interface Car {
public void start();
public void stop();
}
class Ford implements Car {
public void start() {
// TODO Auto-generated method stub
System.out.println("Ford start...");
}
public void stop() {
// TODO Auto-generated method stub
System.out.println("Ford stop...");
}
}
class Toyota implements Car {
public void start() {
// TODO Auto-generated method stub
System.out.println("Toyota start...");
}
public void stop() {
// TODO Auto-generated method stub
System.out.println("Toyota stop...");
}
}
class YuTongBus implements Car {
public void start() {
// TODO Auto-generated method stub
System.out.println("YuTong start...");
}
public void stop() {
// TODO Auto-generated method stub
System.out.println("YuTong stop...");
}
}
class KinglongBus implements Car {
public void start() {
// TODO Auto-generated method stub
System.out.println("Kinglong start...");
}
public void stop() {
// TODO Auto-generated method stub
System.out.println("Kinglong stop...");
}
}
interface AbstractFactory {
}
class CarFactory implements AbstractFactory {
private CarFactory() {
}
private static CarFactory carFactory = new CarFactory();
public static CarFactory getCarFactoryInstance() {
return carFactory;
}
public Car getCar(String type) {
Car car = null;
try {
car = (Car) Class.forName("com.spsoft.factorymethod." + type)
.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return car;
}
}
class BusFactory implements AbstractFactory {
private BusFactory() {
}
private static BusFactory busFactory = new BusFactory();
public static BusFactory getBusFactoryInstance() {
return busFactory;
}
public Car getBus(String type) {
Car car = null;
try {
car = (Car) Class.forName("com.spsoft.factorymethod." + type)
.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return car;
}
}
public class FactorymethodDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// need a Ford
CarFactory factory = CarFactory.getCarFactoryInstance();
Car ford = factory.getCar("Ford");
ford.start();
ford.stop();
BusFactory busFactory = BusFactory.getBusFactoryInstance();
Car bigBus = busFactory.getBus("YuTongBus");
bigBus.start();
bigBus.stop();
}
}
发表评论
- 浏览: 56044 次
- 性别:

- 来自: 南京

- 详细资料
搜索本博客
最新评论
-
良好的编程风格是一门艺术 ...
com.company_name.project_name.bo.Message ...
-- by nwangwei -
DB2百万数据的测试
特别是内存很有关系,呵呵。www.mydb2.cn 上有一些不错的DB2性能和调 ...
-- by xzc -
DB2百万数据的测试
Genuine Intel(R)CPU 2160 @1.80GHZ 1.80 G ...
-- by zwm -
DB2百万数据的测试
应该有硬件信息吧。不同平台表现差别很大的
-- by feifei2001 -
使用Tuscany,建立web serv ...
采用XFire客户端调用 public static void main(Str ...
-- by zwm






评论排行榜