(1)简单工厂模式:
下面以车为例写一个简单工厂模式:
public abstract class BaseCar {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void carDesc();
}
public class FamilyCar extends BaseCar {
private String autopilot;
public String getAutopilot() {
return autopilot;
}
public void setAutopilot(String autopilot) {
this.autopilot = autopilot;
}
@Override
public void carDesc() {
System.out.println("----FamilyCar");
}
}
public class FreightCar extends BaseCar {
@Override
public void carDesc() {
System.out.println("----FreightCar");
}
}
public class SuvCar extends BaseCar {
@Override
public void carDesc() {
System.out.println("----SuvCar");
}
}
写一个生产对象的工厂类:
public class SimpleFactory {
public static final int FamilyCar=1; //冢挺汽车
public static final int SuvCar=2; //SVN汽车
public static final int FreightCar=3; //皮卡汽车
public static BaseCar createCar(int type){
switch (type){
case FamilyCar:
return new FamilyCar();
case SuvCar:
return new SuvCar();
case FreightCar:
return new FreightCar();
default:
return null;
}
}
public static void main(String[] args){
BaseCar familyCar1 = SimpleFactory.createCar(SimpleFactory.FamilyCar);
familyCar1.carDesc();
BaseCar suv = SimpleFactory.createCar(SimpleFactory.SuvCar);
suv.carDesc();
}
}
测试结果:
----FamilyCar
----SuvCar
总结:这种模式主要是扩展性差,耦合度比较高