编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。
设计模式2-创建型设计模式-工厂方法
1.简单工厂设计模式
简单工厂模式(Simple Factory)能够根据提供给它的数据,返回一个类的实例。
在开发过程中,完成一个逻辑不可避免的会使用到其他的类,当这个类比较简单的时候,我们可以直接new来得到对象,但是如果比较负责的时候,可能就需要一个工厂来管理这个对象的初始化,尤其是存在变种的时候。
2.一个简单工厂的实例
public class SimpleFactory {
public static final int TYPE_APPLE = 1;
public static final int TYPE_ORANGE = 2;
public static final int TYPE_BANANA = 3;
public static Fruit getFruit(int type){
if(TYPE_APPLE == type){
return new Apple();
} else if(TYPE_ORANGE == type){
return new Orange("lpf",80);
} else if(TYPE_BANANA == type){
return new Banana();
}
return null;
}
}
比如这个简单工厂就可以创建多个水果的对象,使用者只需要传递类型就好。由于需要传递类型,也可以简单做一下升级
public static Fruit getFruitApple(){
return new Apple();
}
public static Fruit getFruitOrange(){
return new Orange("Orange",80);
}
public static Fruit getFruitBanana(){
return new Banana();
}
这样做的话就不需要传递类型了,想使用那个类型的对象,直接调用相应的方法就可以。
3.简单工厂设计模式存在的问题
- 符合单一职责的原则:一个类管理了多个水果。
- 不符合开闭原则:扩展类别的时候需要修改已有的代码。
这些问题可以通过工厂方法设计模式 来解决
总结一下:
简单工程就是一个对象的管理者,能根据具体的客户的需要创建不同的对象,使用者不需要关心对象的具体创建过程。但是,简单工厂设计模式存在一些问题,如果逻辑简单的情况下可以忽略,但是需求比较复杂,就需要避免直接这样使用。