设计模式(C++语言描述)
szwm1010
正常下班像做贼
展开
-
设计模式之单例模式(Singleton ) 创建型模式
1. 标准的实现-----------------------------Singleton.h-------------------------------#inndef _SINGLETON_H_#define _SINGLETON_H_ #includeusing namespace std; class Single原创 2011-06-10 17:26:00 · 457 阅读 · 0 评论 -
设计模式之简单工厂模式(Simple Factory Pattern) 创建型模式
工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 Simple Factory模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它原创 2011-06-08 16:34:00 · 611 阅读 · 0 评论 -
设计模式之抽象工厂模式(AbstactFactory ) 创建型模式
AbstractFactory模式典型的结构图为: AbstractFactory模式是为创建一组(有多类)相关或依赖的对象提供创建接口,而 Factory模式正如我在相应的文档中分析的是为一类对象提供创建接口或延迟对象的创建到子类中实现。并且可以看到,abstractFactory 模式通常都是使用 Factory 模式实现(ConcreteFactory1)。原创 2011-06-10 16:52:00 · 531 阅读 · 0 评论 -
设计模式之桥接模式(Bridge)之一(Photoshop示例) 结构型模式
举个我们最常用的Photoshop做例子。在Photoshop中,有许多图形工具,比如星星,比如方形,再比如圆形等等。在Photoshop中,不用多说,也有很多种颜色供我们选择。于是就产生了,红色的星星,绿色的星星。红色的方形,绿色的方形等等。看看所产生的树: 现在是三种图形,三种颜色,于是我们就一共去声明了九个类,当然我们还不算中间过程中的辅助父类。如果原创 2011-06-11 16:41:00 · 1052 阅读 · 0 评论 -
设计模式之桥接模式(Bridge)之二(手机示例) 结构型模式
#include#include#includeusing namespace std; //手机软件class PhoneSoft{public: virtual void Run() = 0;} //游戏软件class Game:public PhoneSoft{public:原创 2011-06-11 17:05:00 · 565 阅读 · 0 评论 -
设计模式之桥接模式(Bridge)之三(典型结构图) 结构型模式
Bridge是设计模式中比较复杂和难理解的模式之一,也是OO开发和设计中经常会用到的模式之一。使用组合的方式将抽象和实现彻底的解耦,这样的好处是抽象和实现可以独立地变化,系统的耦合性也得到了很好的降低。GOF在说明Bridge模式时,指出"将抽象部分与它的实现部分分离,使得他们可以独立变化",这句话很简单,但是也很复杂。原因就在于GOF的那句话中"实现"该怎么去理解:"实现"特别是和"抽象"放原创 2011-06-13 16:30:00 · 887 阅读 · 0 评论 -
设计模式之建造者模式(生成器模式)(Builder) 创建型模式
Builder模式解决这样的问题:当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),我们要把复杂对象的创建过程和这个对象的表示分离出来,这样做的好处就是通过一步步的进行复杂对象的创建,由于在每一步的构造过程中可以引入参数,使得结果相同步骤创建最后得到的对象的展示不一样. 例如汽车的生产过程:Builder模式中:1.离合器工厂生产离合器产品,得到汽车部件A.2.原创 2011-06-14 10:32:00 · 504 阅读 · 0 评论 -
简单工厂模式,工厂方法模式,抽象工厂模式 比较
简单工厂模式:简单工厂模式的工厂类一般是使用静态方法,通过接收的参数不同来返回不同的对象的实例,不修改代码的话,是无法扩展的 工厂方法模式工厂方法模式是针对每一种产品提供一个工厂类,通过不同的工厂实例来创建不同的产品实例。在同一等级结构中,支持增加任意产品转载 2011-08-16 15:19:25 · 2257 阅读 · 0 评论 -
组合,关联,聚合的区别
类间关系在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义。在UML类图中,关系用类框之间的连线来表示,连线上和连线端头处的不同修饰符表示不同的关系。类之间的关系有继承(泛转载 2011-08-23 16:25:11 · 1122 阅读 · 3 评论