工厂模式
定义
将对象实例的创建过程整合到另一个工厂对象中,用工厂对象创建对象来代替new。
工厂模式又可以分为:简单工厂、工厂方法模式、抽象工厂模式等。
简单工厂
简单工厂的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。严格意义上来说,简单工厂不在23种设计模式之中。
抽象意义上的关系图:
朱老板使用装饰者模式修改了自己的电脑店,使他配电脑的流程变得更加清晰了,销售的业务流程也越来越快。但是朱老板在做生意的过程中也遇到过一些顾客不是来配电脑的,而是来买配件的。朱老板为了满足他们,就给new一个配件出来,
Component component = new CPU();
Component component = new Memory();
//...其他配件类似
随着客户越来越多,不停的new配件让朱老板觉得有点力不从心。他琢磨了一阵子,想到了换一种方式来得到配件,用一个别的类来把这些new的过程从他的主业务中分离出去。
public interface Factory {
Component createComponent(String arg);
}
public class SimpleFactory implements Factory {
@Override
public Component createComponent(String arg) {
if ("CPU".equalsIgnoreCase(arg)) {
return new CPU();
} else if ("Fan".equalsIgnoreCase(arg)) {
return new Fan();
} else if ("Graphics".equalsIgnoreCase(arg)) {
return new Graphics();
} else if ("HardDisk".equalsIgnoreCase(arg)) {
return new HardDisk();
} else if ("Memory".equalsIgnoreCase(arg)<