设计模式
文章平均质量分 79
yangjianghua
这个作者很懒,什么都没留下…
展开
-
桥接模式(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 阅读 · 0 评论 -
单件模式[Singleton]
单件模式是项目中用的最多的,创建一个实例且仅有一个实例,提供一个全局的对象访问。 下面是它的结构图: 单件模式的优点: 1)比如说有些情况只能创建一个实例,像系统只能有一个打印假脱机,有些软件支持多个 实例:QQ,VC。。。,而有些软件不支持多个实例,像迅雷,有道词典。。。 2)其实创建原创 2010-05-26 22:36:00 · 459 阅读 · 0 评论 -
适配器[Adapter]
Adapter简单的比喻就是把二相插座装换成三相插座,也就是接口转换器。意图使原来不兼容的接口可以和其他接口配合使用。类图: 自己写的简单代码实例:// Shape.h#include class Shape{ public: virtual void draw() { std::c原创 2010-05-27 22:50:00 · 539 阅读 · 0 评论 -
设计模式之观察者模式
<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 阅读 · 0 评论 -
策略模式
<br />在工作中老是看到一大串的 switch,if…else语句,这样的程序分支太多,可谓是丑陋的代码。用策略模式可以部分解决这种问题。我们定义一系列的策略,这样就可以根据客户改变策略。比如做网络协议的时候,客户有自己的协议,我们只需把客户的协议封装好,替换原有的策略,也就是原来的协议就好了,而不用大量的switch判断。<br /> 结构图:<br /><br />示例代码:<br />#ifndef _CONTEXT_H #define _CONTEXT_H #include "S原创 2010-06-09 12:21:00 · 388 阅读 · 0 评论 -
工厂模式
<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 阅读 · 0 评论