1、对象创建模式简介
通过“对象创建”模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。
常见几种对象创建模式有:Factory Method、Abstract Factory、Prototype、Builder
2、动机
在软件系统中,经常面临创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。
如何应对这种需求变化?如何绕开常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“具体对象创建工作”的紧耦合?
3、举例
以前面讲到观察者模式的例子来讲(这里只抽取骨干),上次遗留了这个问题,这里回顾一下。
现在我们想实现一种晚绑定,看一下怎么做?同样,来一个抽象类ISplitter作为功能“分割”的接口,SplitterFactory则用于创建ISplitter对象:
尝试一下先把上面具体new的对象改掉,看一下怎么改?
为了对比看的方便,我们整理一下放在一张图中:
左边ISplitter是功能“分割”的接口,SplitterFactory是创建对象ISplitter的接口;右边上面部分是对应“分割”工作的具体实现,下面是对应创建工厂的实现。这样上一张图创建工作就可以这样解决了: