
设计模式
文章平均质量分 87
nellson
这个作者很懒,什么都没留下…
展开
-
对数据操作封装的一点心得
假设缓存中数据的格式如下所示: id | name level exp time 下面,我们考虑对数据操作进行封装,先定义一个类 class CCacheData; 在对数据进行操作时,可能需要读写name,于是我们写了一个接口,这个接口会实时更新缓存 class CCacheData{ SetName(string &name);};原创 2010-02-25 01:27:00 · 1018 阅读 · 0 评论 -
实战设计模式系列-Facade(外观)
引言: 项目在做数据迁移时,因为数据结构从FormatOld调整成了FormatNew,所以对数据的读取方式发生了变化,而迁移过程持续比较久,所以在读取数据时需要对两种数据格式兼容。比如客户类Client,在数据读取时都需要先读FormatNew,如果FormatNew中无数据时,再访问FormatOld,如果只有一个Client类时,可以直接在Client类中写成以下方式:原创 2010-02-25 00:50:00 · 520 阅读 · 0 评论 -
实战设计模式系列-AbstractFactory(抽象工厂)
【需求分析】 假设我们需要写一个迷宫游戏,游戏支持用户自由选择游戏的场景,比如可以选择普通的迷宫,或者是有魔法的迷宫等。但所有的迷宫都有一些共同的元素,包括墙壁、门、房间。 只考虑创造一个普通的迷宫,代码比较简单,如下所示: Maze* aMaze = new Maze(); Room * r1 = new Room(1); Room * r2 =原创 2010-03-28 22:42:00 · 719 阅读 · 0 评论 -
实战设计模式系列-Singleton(单件)
【引言】 单件模式的应用场景大家都不陌生,目的也很明确,就是一个类保证只有一个实际,比如项目中的资源管理器,或打log的类,都比较适合单件模式,话不多说,先贴一段代码吧。 class Singleton{public: static Singleton* Instance(); static void Destroy(); virtual原创 2010-04-28 22:18:00 · 575 阅读 · 0 评论 -
实战设计模式系列-State(状态)
【需求分析】 state模式中,我们将状态逻辑和动作实现进行分离,当一个操作中要维护大量的case分支语句的时候,并且这些分支也都要依赖于对象的状态时,state模式将每一个分支都封装到独立的类中实现。不同的事物在不同的状态下会有不同的动作,在一个状态下又会转移到下一个状态。 以TCP状态处理为例,TcpConnection只负责独立的业务逻辑,而T原创 2010-05-03 23:45:00 · 580 阅读 · 0 评论