Java抽象工厂模式 抽象工厂模式( 五 )


2、具体实现
车牌号码:
工厂抽象 类: 车牌号码工厂抽象类
具体工厂类 :北京车牌工厂、河北车牌工厂类 (继承自工厂抽象)
蓝色牌照抽象类
北京蓝色车牌生成类(继承自蓝色牌照抽象类)
河北蓝色车牌生成类(继承自蓝色牌照抽象类)
黄色牌照抽象类
北京黄色车牌生成类(继承黄色牌照抽象类)
河北黄色车牌生成类(继承黄色牌照抽象类)
号码生成算法类 (生成随机号码等方法、被具体的生成类引用:北京黄色车牌生成类等)
3、调用
例:
蓝色牌照抽象类= [北京蓝色车牌生成类 创建蓝色车牌方法]
1、抽象工厂模式的优点
抽象工厂模式除了具有工厂方法模式的优点外 , 最主要的优点就是可以在类的内部对产品族进行约束 。所谓的产品族 , 一般或多或少的都存在一定的关联 , 抽象工厂模式就可以在类内部对产品族的关联关系进行定义和描述 , 而不必专门引入一个新的类来进行管理 。
2、抽象工厂模式的缺点
产品族的扩展将是一件十分费力的事情 , 假如产品族中需要增加一个新的产品 , 则几乎所有的工厂类都需要进行修改 。所以使用抽象工厂模式时 , 对产品等级结构的划分是非常重要的 。
3、适用场景
当需要创建的对象是一系列相互关联或相互依赖的产品族时 , 便可以使用抽象工厂模式 。说的更明白一点 , 就是一个继承体系中 , 如果存在着多个等级结构(即存在着多个抽象类) , 并且分属各个等级结构中的实现类之间存在着一定的关联或者约束 , 就可以使用抽象工厂模式 。假如各个等级结构中的实现类之间不存在关联或约束 , 则使用多个独立的工厂来对产品进行创建 , 则更合适一点 。

秒懂生活扩展阅读