摘要:
原文地址:http://www.cnblogs.com/jiese/p/3168844.html当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。基本对象可以被组合成更复杂的组合对象,而这个组合对象又可以被组合,这样不断地递归下去,客户代码中,任何用到基本对象的地方都可以使用组合对象了。用户不用关心到底是处理一个叶节点还是处理一个组合组件,也就用不着为定义组合二写一些选择判断语句了。组合模式让客户可以一致地使用组合结构和单个对象。抽象基类:1)Component:为组合中的对象声明接口,声明了类 阅读全文
摘要:
装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类 更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。比如有一个手机,允许你为手机添加特性,比如增加挂件、屏幕贴膜等。一种灵活的设计方式是, 将手机嵌入到另一对象中,由这个对象完成特性的添加,我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致,因此它对使用该组件的客户透明。#include #include using namespace std;class Phone{public: Phone() {} virtual ~Phone() {} virtual void Sh... 阅读全文
摘要:
桥接模式的目的是分离抽象实现部分,把数据和实现分开,降低耦合。桥接模式和适配器模式不同之处是,桥接模式一般会在软件设计初考虑使用,适配器模式在软件设计之后为了实现接口兼容时使用。下面是系统和电脑之间的桥接模式的使用#include using namespace std;class OS{public: virtual void NameOS() { }};class WindowOS:public OS{public: void NameOS() { cout NameOS(); }};class ToshibaComputer:public... 阅读全文
摘要:
当两个系统的接口不一样时,我们就要重新封装一下接口,以便于当前系统的调用。这种模式叫做适配器模式。适配器模式分为两种:1.对象组合适配器(Object Adapter)2.类适配器(Class Adapter)采用类继承的方式实现。下面是对象适配器的使用。#include #include using namespace std;class CCnOutlet{public: virtual ~CCnOutlet() { }; virtual void Cnplug() { //cout EnPlug(); }private: CEnOu... 阅读全文
摘要:
原型模式是通过已经存在的对象的接口快速方便的创建新的对象。#include #include using namespace std;class Prototype{public: virtual Prototype *Clone() = 0; virtual void display() = 0;};class Prototype1:public Prototype{protected: string name; int id;public: Prototype1(string name, int id) { this->name = n... 阅读全文
摘要:
1. 查看手机ID号。charlesxue@THSHIBA:~/setup/cocos2d-x/cocos2d-x-2.1.4/projects/simpleGame/proj.android/bin$ lsusbBus 001 Device 002: ID 10f1:1a19 Importek Bus 001 Device 003: ID 0bda:0159 Realtek Semiconductor Corp. Digital Media Card ReaderBus 002 Device 005: ID 05c6:9031 Qualcomm, Inc. Bus 002 Device 00 阅读全文
摘要:
假设我们有几个具有相似的窗体,都包含关闭窗体(closeButton)和按钮单击事件(ClickButton)我们在处理时,不想直接操作每个窗体,可以请求代理。#includeusing namespace std;class IWindow{public: IWindow(void) { } ~IWindow() { } virtual void CloseButton() = 0; virtual void ButtonClick() = 0;private:};class ProxyWindow:public IWindow{pub... 阅读全文
摘要:
门面模式是比较常用的一种设计模式,我们可能在无意中就会使用,门面模式就是用一个门面类来处理子系统的复杂关系,门面类简单的Api接口供客户端调用。用一个简单的演播室来表示。#include using namespace std;//class Camera;//class Light;//class Screen;class Camera{public: Camera() { } ~Camera() { } void TrunOn() { cout TrunOn(); m_camera->Rotate(... 阅读全文
摘要:
下面以女娲造黑人,白人,黄种人的例子来介绍一下工厂模式。1.工厂的接口,相当于造人工厂总部。class IHumanFactory{public: IHumanFactory(void) { } ~IHumanFactory(void) { } virtual IHuman* CreateHuman() = 0;};2.造人各个的部门class WhiteHumanFactory: public IHumanFactory{public: WhiteHumanFactory(void) { } ~WhiteHum... 阅读全文
摘要:
别人的博客再讲策略模式时都会讲三国,策略类就是赵云的锦囊,锦囊里装着若干妙计。在打仗时想要用什么妙计,直接从锦囊里去取。锦囊类:class context{public: context(IStrategy *isstrategy); ~context(); void Operate(void);private: IStrategy *m_strategy; };context::context(IStrategy *isstrategy):m_strategy(isstrategy){}context::~context(){}void context::Operate(void){ ... 阅读全文