创建型模式 创建型模式抽象化了实例化的过程。他的主要功能是帮助一个系统独立于如何创建,组合和表示他的那些对象。
1 ABSTRACT FACTORY(抽象工厂)
目的:创建一系列相关或者互相依赖的对象接口,但是无需指定他们具体的类。
别名:Kit
动机:定义一个统一的抽象接口,来和用户进行交互,至于继承该抽象类的具体类是如何实现用户要求的,具体使用哪个类实现用户要求,作为用户是不知道的,这样的统一接口好处在于如果改变了实现的具体类(比如增加功能),只要抽象基类不改变,用户端代码不必要重写,提高了效率。(这是我自己理解的,不知道具体是不是,翻译的很烂,不太明白。)
适用于:
一个系统要独立于他的产品的创建,组合和表示的时候。
一个系统要由多个产品系列中的一个来配置时。
只想显示产品的接口而不是实现的时候。
效果:
1 它分离了具体的类。实现了客户与类的分离,客户只能通过一个抽象接口来间接的操作具体的实现类。
2 有利于产品的一致性。当一个系列中的产品对象被设计成一起工作时,一个应用一次只能使用同一个系列中的对象。也就是说在抽象类下面的所有具体类都是相关的,在客户端比较容易进行引用。
3 难于扩展。要是要扩展类结构的话不太容易,这一点我还是不太明白,多定义一个接口再定义类不就可以了阿。呵呵
实现:(这里包括实现AbstractFactory模式的一些有用的技术)
1 将工厂定义为单个组件,也就是说每个系列的产品只需要一个具体的实例。
2 AbstractFactory仅仅生命一个接口,而真正创建产品的过程是由它的子类来实现的,最通常的办法是为每个产品定义一个工厂方法(FactoryMethod)这个我们将在后面的设计模式中在仔细研究。
3 定义可扩展的工厂 AbstractFactory通常为每一种它可以生产的产品定义一个操作,也可以说一个方法,用户交互都在AbstractFactory中进行,当需要增加类或者其他操作时,必须在AbstractFactory中增加相应的操作并对与增加的类相关的操作进行修改。
相关模式:
AbstractFactory类通常用工厂方法(FactoryMethod)来实现。
其实笔记写了这么多,对于创建型模式还是没有自己的理解,不过还好书后面有一个例子,看了以后有了大概的了解,希望以后看了后面的模式以后再来理解这个模式能有更多的收获。呵呵~~~