2.抽象工厂模式

一、基本模式

1. 抽象工厂,具体工厂,抽象产品,具体产品作为其要素;

2. 具体工厂生产出具有【抽象产品】协议方法的产品

3. 生产出的具体产品细节对使用者透明,使用者只需知道抽象产品的协议即可。

4. 使用时:   AbstractProduct aProduct = concreteFactory.createProduct;  aProduct.doSth();

二、模式演化

1. 抽象xx不一定要用抽象类,用接口或Protocol也可

2. 产品创建方法可有多个, 如 createEatableProduct + createPlayabelProduct + createSoulmateProduct 对应不同的抽象产品

3. 有则复用, 无则生产, 与享元模式形成组合模式

三、 模式退化

抽象产品的多态性作为必要的适用条件,当只有一类具体产品时,失去多态在存在意义

 

posted @ 2015-08-19 01:18  MittyoO  阅读(140)  评论(0编辑  收藏  举报