抽象工厂模式的倾斜性和改进设计研究

2015-09-01 13:50:18闫如海
中国高新技术企业 2015年33期

闫如海

摘要:文章针对传统的抽象工厂模式的倾斜性进行了纠正,使得在生产不同产品族和不同产品等级结构时,新增产品等级结构不必修改源码,给出符合开闭原则的设计方案,同时对抽象工厂的缺点做了改进设计,以适应系统设计时搭建上层框架的需求。

关键词:抽象工厂模式;倾斜性;设计模式;开闭原则;系统设计 文献标识码:A

中图分类号:TP312 文章编号:1009-2374(2015)33-0018-02 DOI:10.13535/j.cnki.11-4406/n.2015.33.010

1 概述

抽象工厂模式源于面向对象设计领域里的经典教材《设计模式》,顾名思义,抽象工厂模式用于系统运行时生产需要的对象,是一种创建型模式,在系统设计时是创建对象的核心模式。

对于使用抽象工厂模式增加新产品的等级结构,学者们普遍认为必须要修改所有的工厂角色,只能以修改源码的方式新增新产品的等级结构,说明抽象工厂模式没有很好支持开闭原则(OCP),以一种倾斜的方式支持增加新的产品,它为新产品族的增加提供方便,而不能为新的产品等级结构的增加提供这样的方便。这种方式也已不能够为制造业信息化和服务化服务,文中给出符合开闭原则的设计方案,同时对抽象工厂的缺点做了改进设计,以适应系统设计时搭建上层框架的需求。

2 新增产品等级结构的设计

如果已有产品等级A和B,产品族1和2,需要增加产品等级结构C可以按图1所示进行:

图1 新增产品等级结构的设计类图

图中新增两大类内容,由虚线标注:

第一,新增的产品等级结构C位于图下方,由三个类组成:AbstractProductC、ProductC1、ProductC2。……

登录APP查看全文