设计模式
狼族孤星
这个作者很懒,什么都没留下…
展开
-
工厂模式
个人理解主要是定义了创建对象的接口,封装了子类创建的细节,不需要在客户代码中出现例如:new 子类,这样的书写,同时使得具体化类的工作延迟到了子类中。Uml图简单的代码实现:class Product{public:virtual ~Product() = 0{}protected:Product(){}};cla原创 2013-09-17 22:35:26 · 250 阅读 · 0 评论 -
设计模式学习
到最后还是还是回到了设计模式的学习上面了,之前一直在看一些c++的技术书,主要是关于语法等方面的用法,一直没关心代码的组织,最近开始看了设计模式,也是一些简单的见解,毕竟自己还没做过大项目,呵呵,自己把自己理解的写下来,方便以后查阅。 下面是设计模式的分类,主要分为三大类。 一是创建型模式,主要是负责对象的创建。 二是结构型模式,负责类之间的相互组织。原创 2013-09-16 22:39:37 · 374 阅读 · 0 评论 -
抽象工厂
昨天说到工厂只能创建一类类,而真正处理多种类型的类时,则需要用到抽象工厂模式,比如创建数据库类,ok有各类数据库,这时候都放在一个类中处理,显然是不合适的,就需要针对不同的数据库,创建不同的数据库类。、Uml图代码(C++)//抽象产品Aclass AbstractProductA{public: virtual ~AbstractProductA() =原创 2013-09-18 22:11:08 · 290 阅读 · 0 评论 -
单例模式
这一节是简单的单例模式,顾名思义也就是说一个类只能有一个对象。我们通过维护一个static的成员来记录这个唯一的对象实例。把构造函数设为私有的,只能通过GetInstance来获得该类的实例两种实现方法 class Singleton{public:static Singleton* GetInstance(){static Sing原创 2013-09-20 23:15:23 · 239 阅读 · 0 评论 -
建造者模式
允许通过不同的建造次序来进行不同的建造。UML图实现代码:class Product{public:Product(){}~Product(){}void Add(string part){vec_parts.push_back(part);}void Show(){ for (size_t i = 0; i {cout部件"}原创 2013-09-22 22:33:13 · 263 阅读 · 0 评论 -
原型模式
主要是为了进行复制自身拷贝分为浅拷贝和深拷贝,后者将会连带指针指向的内容一并拷贝。C++中通过拷贝构造函数实现。UML类图C++代码:class Prototype{public:virtual Prototype* clone() const= 0;virtual ~Prototype(){}};class原创 2013-09-23 20:57:11 · 303 阅读 · 0 评论 -
桥接模式
桥接模式的主要思想是通过组合来代替继承,从未避免类继承的过分膨胀。将抽象部分与它的实现部分分离,使他们可以独立地变化。 C++代码:class AbstractionImp{public: virtual ~AbstractionImp(){} virtual void Operation() = 0;};class ConcreteAbstr原创 2013-09-24 22:11:22 · 284 阅读 · 0 评论 -
适配器模式
主要是通过适配器来适配第三方接口。图中右边两个关系分别代表以下两种实现。//继承实现,也称类模式class Target{public:Target(){}virtual ~Target(){}virtual void Request(){cout<<"Target::request"<<endl;}};class A原创 2013-09-28 23:36:21 · 248 阅读 · 0 评论