首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

小弟我所理解的设计模式(C++实现)——抽象工厂模式

2013-04-02 
我所理解的设计模式(C++实现)——抽象工厂模式解决的问题:在系统里a,b,c三个组件必须同时使用,但是a的同类 a

我所理解的设计模式(C++实现)——抽象工厂模式
解决的问题:       在系统里a,b,c三个组件必须同时使用,但是a的同类 a1和a2这三种方法有共同特点但是是互斥的,b,b1,b2和c,c1,c2和a/a1/a2是一样的。就比如说创建在不同操作系统的视窗环境下都能够运行的系统时,Unix下面有unixButton和 unixText,Win下面也有winButton和winText,unixButton和unixText必须在一个系统unix里面用,而winButton和winText只能在Win下面用。但是winButton和unixButton这两种东西都是有相同的特点的,比如说按下去之后会触发事件,比如说他上面有文字描述等等,但是winButton和unixButton却又是不可以混用的。
     那么此问题就可以用抽象工厂很好的解决:     在抽象工厂模式中如何选择使用 winButton ,winText,有具体的工厂类winFactory来负责,因为他们含有选择合适的产品对象的逻辑,所以是与应用系统的商业逻辑紧密相关的。而抽象工厂类来负责定义接口,他才是抽象工厂模式的核心。     而winButton/macButton则是一种产品族,有共同的特点,他们具体特点有抽象产品类或者接口来定义和描述。但是他们具体的实现有具体的产品类负责,这些是客户端最终想要的东西,所以其内部一定充满了应用系统的商业逻辑(触发逻辑/样式逻辑等)。
类图结构:    小弟我所理解的设计模式(C++实现)——抽象工厂模式小弟我所理解的设计模式(C++实现)——抽象工厂模式
小弟我所理解的设计模式(C++实现)——抽象工厂模式
样例实现:

Kit)。游戏开发中的多风格系列场景,比如道路,房屋,管道等。
LCL_data原创于CSDN.NET【http://blog.csdn.net/lcl_data/article/details/8733933】
1楼xichji3天前 08:05
有待提升。
Re: LCL_data3天前 08:54
回复xichjin谢谢支持。

热点排行