设计模式
勇-子
这个作者很懒,什么都没留下…
展开
-
设计模式--代理模式(Proxy)
例子一个很简单的例子,房东要出租房子 一般模式:class CHouseOwner{ public: CHouseOwner(CString strHouseAddress, CString strTeleNum, CString strName); void SetPrice(int iPrice){//dosomething} void Advertising(){//dosomething} void TakeToSeeTheHouse(CHouseFin原创 2011-03-30 15:19:00 · 699 阅读 · 0 评论 -
设计模式--职责链(Chain of Responsibility)
Chain of Responsibility看一个例子: 网管接收帧的处理:// 这个模式需要定义个公共接口,属于这条链里的对象,全部派生于它class Poll {public: //这个构造函数实际上就是指定后继者 Poll(Poll* pPoll) { m_pSuccessor = pPoll; } void SetNextHandlePoll(Poll* pSucces原创 2011-03-30 15:30:00 · 762 阅读 · 0 评论 -
设计模式--原型模式(Prototype)
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。提供了一个通过已存在对象进行新对象创建的接口,在C++中使用拷贝构造函数。 Java中通过覆盖父类Object的clone方法实现,继承接口Cloneable,此接口无任何方法,只起一个标记作用, 具有这个标记的对象才有可能被拷贝。Public class PrototypeClass implements Cloneable{Public PrototypeClass clone(){原创 2011-03-30 15:07:00 · 639 阅读 · 0 评论 -
设计模式--单件模式(Singleton)
在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率,比方说:线程池(threadpool)、缓存(cache)、对话框、处理偏好设置和注册表的对象、日志对象,充当打印机、显卡等设备的驱动程序的对象。这些类对象只能有一个实例,如果制造出多个实例,就会导致许多问题产生,例如:程序的行为异常、资源使用过量躲着是不一致的结果。遇到这种情况,我们可以通过单件模式来实现,这个模式保证在任何时刻都只有一个对象。 定义: 保证一个类仅有一个实例,并提供一个访问原创 2011-03-30 15:11:00 · 706 阅读 · 0 评论 -
设计模式--装饰模式(Decorate)
1.例子需求:设计一套生产冰激凌的系统,以满足顾客以下几种需求:水果冰激凌、奶酪冰激凌、巧克力冰激凌。。。 新的需求:水果奶酪冰激凌、奶酪水果巧克力冰激凌。。。 请注意食品添加的顺序~2.定义动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活。3.类原创 2011-07-21 15:23:11 · 3852 阅读 · 0 评论 -
设计模式--适配器模式(Adapter)
例子我们的网管告警亮灯:是否有告警需要从另一个公司的网管中获取,我们的接口是:bool IsAlarming,另一个公司的接口是:bool GetAlarm()定义适配器模式:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。通过继承进行的适配,叫做类适配器;通过关联关系进行的适配,叫做对象适配器原创 2012-03-01 11:33:50 · 851 阅读 · 0 评论 -
设计模式--代理模式(Proxy)
一个很简单的例子,房东要出租房子一般模式:class CHouseOwner{ public: CHouseOwner(CString strHouseAddress, CString strTeleNum, CString strName); void SetPrice(int iPrice){//dosomething} void Advertising(){//d原创 2012-03-01 11:38:41 · 894 阅读 · 0 评论 -
设计模式--观察者(Observer)
1. 说说简单的函数回调首先说说一种简单的函数回调机制(一种通过获取对象的指针来进行函数的调用方法)下面是代码演示---这是观察者(被回调)部分:class Observer{public: // 抽象观察者的纯虚函数 virtual void UpdateMessage() = 0;};class ConcreteObserver : public Observer原创 2012-05-30 15:18:46 · 838 阅读 · 1 评论 -
设计模式--组合模式(Composite)
解决的问题:我们PC用到的文件系统,其实就是我们数据结构里的树形结构,我们处理树中的每个节点时,其实不用考虑他是叶子节点还是根节点,因为他们的成员函数都是一样的,这个就是组合模式的精髓。他模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对原创 2014-11-17 16:56:11 · 856 阅读 · 0 评论