设计模式 – 简单工厂模式(静态工厂方法)
优缺点
优点:简单工厂模式可以根据需求,动态生成使用者所需类的对象,而使用者不用去知道怎么创建对象,使得各个模块各司其职,降低了系统的耦合性。
缺点:拓展性差,违背了开闭原则,由于只有一个工厂类,新增产品时,需要修改这个工厂类。
代码如下:
/**
* 车子抽象类
*/
public interface Car {
void logo();
}
/**
* 长安汽车
*/
public class ChangAnCar implements Car{
@Override
public void logo() {
System.out.println("长安汽车的logo");
}
}
/**
* 五菱汽车
*/
public class WuLingCar implements Car{
@Override
public void logo() {
System.out.println("五菱汽车的logo");
}
}
/**
* 简单工厂模式 (静态工厂模式)大多数用这个
*/
public class CarFactory {
// 方法1
public static Car getCar(String carName){
if ("五菱".equals(carName)){
return new WuLingCar();
}else if ("长安".equals(carName)){
return new ChangAnCar();
}
//...
else {
return null ;
}
}
// 方法2
public static Car getWuLingCar(){
return new WuLingCar();
}
public static Car getChangAnCar(){
return new ChangAnCar();
}
//...
}
/**
* 测试
*/
public class Consume {
public static void main(String[] args) {
Car car1 = CarFactory.getCar("五菱");
Car car2 = CarFactory.getCar("长安");
car1.logo();
car2.logo();
}
}
配图