![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 80
fengyelengfeng
这个作者很懒,什么都没留下…
展开
-
设计模式(-)
设计模式分为三种类型创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。Abstract Factory(抽象工厂模式):提原创 2014-10-15 15:39:58 · 709 阅读 · 0 评论 -
设计模式(二)
模板方法模式 GOOD:把不变的代码部分都转移到父类中,将可变的代码用virtual留到子类重写#include#include#includeusing namespacestd; classAbstractClass{public: void Show() { cout我是"原创 2014-10-16 16:53:00 · 841 阅读 · 0 评论 -
设计模式(四)
迭代器模式 GOOD:提供一种方法顺序访问一个聚敛对象的各个元素,而又不暴露该对象的内部表示。为遍历不同的聚集结构提供如开始,下一个,是否结束,当前一项等统一接口。例:#include #include using namespace std;templateclass Iterator{public: virtual void first原创 2014-11-06 17:48:07 · 689 阅读 · 0 评论 -
设计模式 (三)
抽象工厂模式 GOOD:定义了一个创建一系列相关或相互依赖的接口,而无需指定它们的具体类。 用于交换产品系列,如ACCESS->SQLSERVER;产品的具体类名被具体工厂的实现分离例:#include#include#includeusing namespacestd; //用户抽象接口class IUser{pub原创 2014-11-06 17:41:30 · 623 阅读 · 0 评论 -
工厂模式:封装对象的创建(三、抽象工厂)
抽象工厂(Abstract Factory)模式看起来和前面的工厂方法很相似,只是它使用若干工厂方法(Factory Method)模式。每个工厂方法模式创建一个不同类型的对象。用户界面当创建一个工厂对象时,要决定将如何使用那个工厂创建的所有对象。实现各种图形(GUI)的可移植性:创建一个合适于正在使用的GUI的工厂对象,然后它将根据对它发出的对一个菜单、按钮或者滚动条等的请求自动原创 2015-12-09 10:18:02 · 761 阅读 · 0 评论 -
c++ 单例模式的浅谈
面对单例模式适用的情况,可能会优先考虑使用全局或者静态变量的方式,但是采用全局或者静态变量的方式,会影响封装性,难以保证别的代码不会对全局变量造成影响。《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法获取该实例。//Singleton.h#ifndef _SINGLETON_H_#define原创 2015-11-30 10:40:52 · 369 阅读 · 0 评论 -
工厂模式:封装对象的创建(二、多态工厂)
在上篇中,静态成员函数 static Shape* factory(const string& type) 迫使所有创建对象的操作都集中在一个地方,因此这个地方就是唯一需要修改代码的地方。这是一个合理的决解方法,因为它完美的封装了对象的创建过程。但是工厂方法模式——可以使不同类型的的工厂派生自基本类型的工厂。工厂方法事实上就是多态工厂模式的一个特例。所以下面例子是——工厂方法模式做为原创 2015-12-07 15:28:10 · 585 阅读 · 0 评论 -
工厂模式:封装对象的创建(一、在基类中定义一个静态成员函数)
当我们发现需要添加新的类型到一个系统中时,最明智的首要步骤就是用多态机制为这些新类型创建一个共同的接口。用这种方法可以将系统中多余的代码与新添加的特定类型的代码分开。新类型的添加并不会搅乱已存在的代码...或者至少看上去如此。起初它似乎只需要在继承新类的地方修改代码,但这并非完全正确,仍须创建对象,在创建对象的地方必须指定要使用的准确的构造函数。因此,如果创建对象的代码遍布整个应用的程原创 2015-12-07 10:59:52 · 1578 阅读 · 0 评论