设计模式
文章平均质量分 83
ba_jie
这个作者很懒,什么都没留下…
展开
-
observer
● 意图1> 在N个对象之间,建立一对多的联系:一个对象(主体)状态改变,其它对象(客体)都得到通知,并且做出相应的更新。2> 核心、通用的模块,封装到主体类;因个体而异的可变的功能,封装到客体类。3> 实现MVC体系中的View。● 问题一个软件设计在规模逐渐庞大时,其“图形化系统”/“监视系统”做不到相应的、很好的更新。● 实现步骤1> 找到应用程序中相似的、可选的、并行的、外围的功能/模块。2> 给它们定义一个通用接口(最好是个抽象类),这样它们就具备了互换性,多态了,翻译 2011-05-02 17:15:00 · 579 阅读 · 0 评论 -
Chain of Resposibility
<br />// ★ demo 1#include <iostream>#include <vector>#include <ctime>using namespace std;class Base { Base* next; // 1. 基类中要有"next"指针public: Base() { next = 0; } void setNext( Base* n ) { next = n; } void add( Base* n )原创 2011-05-05 12:16:00 · 570 阅读 · 0 评论 -
Builder
<br />如果要构造一个组成部件很多的对象,即所谓的aggregate,可能要使用Director - Builder模式。<br />Director也叫Reader或Parser,负责解析输入,然后调用Builder相应的函数来构造对象相应的部件。<br />Builder模式的特征是,在构造对象时,一步步逐渐完成,而不是用一个函数一下子实现。<br />把整个构造过程抽象出N步,是为了让每一个步骤有多种实现方式。这样,最后构造出来的对象就会有多种表现形式。<br />所以,Build原创 2011-05-06 14:41:00 · 481 阅读 · 0 评论 -
野指针的判别 - 学自另一个项目组
公司另一个项目组的同事,昨天做了讲座:一个野指针的处理方案。先看一个典型的野指针:#include #include using namespace std;//===========================================================class Player{ string _name;public: Player(con原创 2016-12-16 18:46:58 · 1176 阅读 · 0 评论