
设计模式
文章平均质量分 58
晨识草
同样都是碳
展开
-
类之间的关系
1.关联关系在java、c++中类的关联关系在实现时,通常将一个类的对象作为另一个类的成员变量。实例: 代码片段如下:class loginForm { private: JButton loginButton; ...};class JButton { ...};(1)双向关联例如:顾客购买商品并拥有商品,反之,卖出的商品总有某个顾客与之相关联cla原创 2016-07-24 09:03:58 · 365 阅读 · 0 评论 -
Bridge Pattern(桥接模式)
1.image.h#ifndef IMAGE #define IMAGE #include<iostream>using namespace std;class Image {public: virtual void imagePattern() {}};class JPGImage : public Image {public: void imagePattern()原创 2016-08-08 22:54:44 · 290 阅读 · 0 评论 -
Adapter Pattern(适配器模式)
1.定义适配器模式: 将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper), 可以作为类结构型模式,也可以作为对象结构型模式.2.结构(1)Target(目标抽象类): 目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类 (2)Adapter(适配器类): 适配器可以调用另一个接口,作为一个转换器,对Adapter和Targe原创 2016-08-08 16:49:41 · 325 阅读 · 0 评论 -
Builder Pattern(建造者模式)
1.builder.h#include<iostream>using namespace std;class Builder { public: virtual void buildParta() {} virtual void buildPartb() {} virtual void buildPartc() {} virt原创 2016-08-08 15:53:12 · 264 阅读 · 0 评论 -
shallow copy and deep copy in Prototype Pattern
深复制和浅复制的实现,最重要的在于拷贝构造函数,针对的是有指针成员变量的类深复制, 在拷贝构造函数中会运用new创建新的指针,并将原有的值赋值给新创建的指针浅赋值,直接进行指针的值赋值,不要这样使用,会导致同一指针的多次delete下面是一个例子(注明:这个例子是从其他的博客上学习的) 首先是抽象类提供了一个接口,关于clone的函数声明 然后是workexperience单独作为一个类的实现原创 2016-08-07 16:05:39 · 234 阅读 · 0 评论 -
原型模式(Prototype Pattern)
1.定义原型模式:使用原型实例指定创建对象的类型,并且通过克隆这些原型创建新的对象.原型模式是一种对象创建模式.2.注意:通过克隆方法所创建的对象是全新的对象,他们在内存中拥有新的地;通常,对克隆所产生的对象进行的修改不会对原型对象造成任何影响,每一个克隆对象都是相互独立的;通过不同的方式对克隆对象进行修改以后,可以得到一系列相似但不完全相同的对象.3.结构(1)Prototype(抽象原型类):它原创 2016-08-07 12:50:22 · 363 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory Pattern)
1.定义:抽象工厂模式:提供一个创建一系列相关的或相互依赖对象的接口,而无须指定他们具体的类.抽象工厂模式又称为Kit模式,它是一种对象创建型模式.2.说明在抽象工厂模式中,每一个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品,这些产品构成了一个产品族.3.结构(1)AbstractFactory(抽象工厂):它声明了一组用于创建一族产品的方法,每一个方法对应一种产品 (2)Concret原创 2016-08-06 22:20:56 · 306 阅读 · 0 评论 -
简单工厂模式
1.设计思想首先将需要创建的各种不同对象的相关代码封装到不同的类中,这些类成为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象的产品类中,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方式,该方法可以根据所传入的参数不同创建不同的具体产品对象;客户端只需调用工厂类的工厂方法并传入相应的参数即可得到一个产品对象。2.定义...原创 2016-08-02 14:25:25 · 220 阅读 · 0 评论 -
工厂模式
1.关于上一篇的简单工厂模式简单工厂模式最大的缺点是当有新产品需要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务落逻辑,违背了开闭原则。且简单工厂模式中所有产品都由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂。2.工厂模式的定义(1)工厂模式:定义一个用于创建对象的接口,让子类决定哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。是一种类创建型模式。 (2)工厂方法模式提供一原创 2016-08-04 14:50:24 · 220 阅读 · 0 评论 -
组合模式
首先做一下声明,这个代码参考了其他博客(http://blog.youkuaiyun.com/lcl_data/article/details/8811101)的代码,稍做修改,因为看的那本书,里面是java代码,但是又比较习惯打c++1.Menu.h#ifndef MENU #define MENU #include<string>#include<iostream>using namespace s原创 2016-08-09 21:49:48 · 232 阅读 · 0 评论