![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 83
lipeng08
字节跳动 分布式存储系统 开发工程师
展开
-
设计模式-观察者模式
今天看了gof的设计模式的观察者模式一章,仿造sip协议中的订阅和发布的相关思路,仿造gof的框架结构写了如下c++代码。 此代码仅仅是对观察者模式的一个简单实现,结构不算复杂。 概念: 观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生改变的时候,所有依赖他的对象都得到通知并被自动更新。以QQ举例,你和你的qq好友时一族相互的依赖对象,当你的好友上线了,你可以看到你的好友上线的原创 2012-12-23 20:16:47 · 960 阅读 · 0 评论 -
状态模式
以下很多内容都来自GOF的设计模式,我仅仅根据自己的理解进行了简化,方便大家的同时也便于后期的回忆 目的: 状态模式一般是用在一个可能会有多个状态的对象中。当此对象的内部状态改变的时候,它的行为也会改变。对象看起来似乎是修改了它的类。 动机: 考虑一个简单的tcp连接的对象TCPConnection,它可能会处于连接开启,连接关闭,连接建立三种状态。当一个TCPConnection原创 2012-12-26 12:58:40 · 1360 阅读 · 0 评论 -
备忘录模式
备忘录模式,如它的名字所说,就是为了备忘的。以下很多内容来自GOF的设计模式,不得不佩服,经典就是经典。 定义: 在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。用它保存对象的当 前状态,以便于恢复。它的很重要的一点是在外部保存。 意图: 很多时候为了允许用户的撤销操作,需要保存当前的状态信息到某一个地方,然后到需要原创 2012-12-27 19:44:27 · 1222 阅读 · 0 评论 -
设计模式-单例模式
单例模式: 确保程序的某一个类在运行的时候只生成一个对象,拥有对它类似于全局对象的访问权限。 模式分析: 例如很多时候我们在写程序的时候会有类似于DriverManager,CallManager等等这样的管理类,它们主要的功能就是为了管理一堆相似的对象。对于这种管理类,一个程序一般只有一个对象,毕竟我们写出管理类的目的就是为了便于管理,管理类的对象多了也就失去了管理的意义了,而且还有一点我原创 2013-08-13 13:40:31 · 989 阅读 · 0 评论 -
设计模式-装饰者模式
装饰者模式: 1,装饰者可以在被装饰的行为前面或者后面添加新的行为,甚至于完全替换掉。 2,装饰者会导致很多小对象的产生,不可过度使用。 3,通过组合和委托,可以在运行时候动态添加新的行为。 4,装饰者模式遵循面向扩展开放,面向修改关闭的原则。 5,装饰者模式通过组合方式包装被装饰者,从而扩展被装饰者。 真实世界的装饰者: java.io类。通过层层包装实现增加功能 基本架原创 2013-08-13 23:28:14 · 1109 阅读 · 0 评论 -
设计模式-命令模式
命令模式: 1,将命令的请求者和命令的执行者进行解耦。 2,通过将命令封装成对象,命令对象封装了接收者和要执行的动作 3,将命令封装成对象,命令可以传递,通过在命令对象中添加undo方法,支持撤销。 4,调用者通过调用命令对象的execute方法,执行接收者的具体动作 5,通过使用宏命令,宏命令也是一个命令对象,只是它是一种组合模式的体现。它拥有一个命令对象列表,代表着一堆要执行的命令,原创 2013-08-15 00:04:04 · 1433 阅读 · 0 评论 -
设计模式-工厂方法 简单工厂 抽象工厂 模板方法
简单工厂模式: 创建多种不同类型的产品,根据传入参数的类型进行创建。 只有一个Creator方法,负责多种不同的产品的创建,传入参数的类型来决定具体创建哪种产品,实现简单,但是如果需要扩展产品的话,就需要修改Creator方法的实现。 有一个Pizza店,可以生产不同种类的Pizza,对于此代码简单如下: //这是一个抽象的pizza,有很多不同种类的pizza,继承于它。 class原创 2013-08-15 15:02:14 · 1261 阅读 · 0 评论 -
再读GOF设计模式之原型模式
1,简介 原型模式: 用原型实例来指向创建对象的种类,通过拷贝原型来创建新的对象。使用原型模式可以尽可能减少客户所知道的类的数目,独立于产品的创建,构成和表示,使运行时动态配置应用成为可能。上面这两点我认为是倒出了原型模式的精髓,具体下面慢慢道来。 2,详细说明 2.1 图示说明 如上图所示,Client作为客户存储着具体原型的指针,当它需要创建对象的时候,原创 2014-01-22 00:55:48 · 1719 阅读 · 4 评论