- 博客(5)
- 资源 (1)
- 收藏
- 关注
转载 桥接模式(Bridge Pattern)
桥接模式(Bridge Pattern)作者:TerryLee<br />出处:http://terrylee.cnblogs.com <br />在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。<br />意图<br />将抽象部分与实现部分分离,使它们都可以独立的变化。[GOF 《设计模式》]<br />结构图<br /><br /
2010-06-26 21:22:00 611
转载 Command模式
<br /> <br />来自http://tech.ddvip.com 2008年10月10日 社区交流<br /> <br /> 一、Command模式定义:<br /> 将一个请求封装为一个对象,从而使你不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。<br /> 二、模式解说<br /> Commad模式是一种对象行为模式,它可以对发送者(sender)和接收者(receiver)完全解耦(decoupling)。("发送者" 是请求操作
2010-06-24 20:37:00 517
原创 工厂模式
<br />将程序中创建对象的操作,单独出来处理,大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式。<br />结构图:<br /> <br />示例代码:<br />#ifndef _PRODUCT_H #define _PRODUCT_H typedef int ProductId; #include <iostream> using namespace std; enum {typeA=1,typeB,typeC}; class Product {
2010-06-09 16:40:00 430
原创 策略模式
<br />在工作中老是看到一大串的 switch,if…else语句,这样的程序分支太多,可谓是丑陋的代码。用策略模式可以部分解决这种问题。我们定义一系列的策略,这样就可以根据客户改变策略。比如做网络协议的时候,客户有自己的协议,我们只需把客户的协议封装好,替换原有的策略,也就是原来的协议就好了,而不用大量的switch判断。<br /> 结构图:<br /><br />示例代码:<br />#ifndef _CONTEXT_H #define _CONTEXT_H #include "S
2010-06-09 12:21:00 388
原创 设计模式之观察者模式
<br />个人觉得观察者模式是继单件模式最常用也是最有用的模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。这是一种重要的解耦方式。<br />结构图:<br /> <br /><br />代码:<br />#ifndef _OBSERVER_H #define _OBSERVER_H class Subject; class Observer { public: // virtual ~Observer();
2010-06-07 22:35:00 439
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人