命令模式(Command Pattern):将请求封装成对象,从而使可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作. 下面是一个命令模式的demo: 上面类的设计如下图: 优点: 可以较容易的设计一个命令队列 可以较容易的将命令记入日志 允许接收请求的一方决定是否要否 ...
分类:
编程语言 时间:
2017-11-24 16:57:43
阅读次数:
191
温故而知新,每次读设计模式都会有不同的体验,坚持每天一个设计模式,直到熟练运用设计模式。 策略模式定义了很多完成相同工作的算法,但实现不同,它可以以相同的方式调用所有的算法,减少了算法和调用算法的耦合。 以下是大话设计模式的策略类图 以上是策略模式的一个demo,不过现在客户端还是要知道具体使用哪个 ...
分类:
编程语言 时间:
2017-11-22 11:48:25
阅读次数:
210
给大家分享一本特别好的书,只要耐下心去读,受益匪浅 下面是我的百度云链接分享 版本一:《大话设计模式》Java版PDF 文档版 链接: https://pan.baidu.com/s/1cuGiCm 密码: b3ck 版本二:《大话设计模式》Java版PDF 图书扫描版 链接: https://pa ...
分类:
其他好文 时间:
2017-11-14 20:34:55
阅读次数:
418
设计模式的视频课程今天算是告一段落,视频+《大话设计模式》+ GoF的粗浅学习,还需要日后的练习应用。学习期间留下一段杂乱摘要笔记,供自己温故知新和增删整改。 0. 单项沟通:A为B服务,则A需要知道B能干什么,但B不需要知道A;不要跨越层次调用功能0. 语言以外的接口,指的是类的对外的行为,比如公 ...
分类:
其他好文 时间:
2017-11-10 00:34:18
阅读次数:
224
作为一个Java初学者,看《大话设计模式》的时候,看到第一个例子,感同身受啊。 所以今天,我用Java语言编写这个程序,从面向过程-->面向对象-->简单工厂模式的转变过程。 需求:请用C++、Java、C#或VB.NET任意一种面向对象语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结 ...
分类:
其他好文 时间:
2017-10-27 01:54:43
阅读次数:
208
设计模式概要 本文学习自程杰兄的大话设计模式所记心得,建议各位看官去看看这一本书。本文留楼主日后回忆时阅读使用 简单工厂模式 把对象的获取放到工厂中,可以减少依赖。对类进行使用继承。使用父类去获取,在需求变更的时候,需要改变的地方只需要加一个子类和工厂中的逻辑。不会对表现层(客户端)有任何的变更,这 ...
分类:
其他好文 时间:
2017-09-21 11:23:40
阅读次数:
126
建造者模式结构图 角色:1、builder:建造者接口。定义了建造一个产品所必须的所有流程。所有的建造者都需要实现该类,以确保实现建造一个产品所需的流程。 2、concreteBuilder:具体建造者。每一个建造者,可以创建一种产品,产品细节在建造者中定义,因此多个产品对应多个建造者。 3、pro ...
分类:
其他好文 时间:
2017-09-06 16:44:02
阅读次数:
116
本文参考了程杰的《大话设计模式》,使用C#语言利用面向对象的模式来写一个计算器。 如果是我本人来写计算器,也就加减乘除的话,估计我会全部写进控制台里面,写4个if语句出来......或者我会利用switch,但是这样的效果都不好,有更好的方法,就是如下所示的代码啦: 先定义一个Operation类, ...
分类:
其他好文 时间:
2017-09-01 12:57:06
阅读次数:
333
概述: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 角色: 1、层次类:这是一个抽象类,定义了程序的骨架,抽象细节。 2、细节类:继承抽象类,对细节进行描述,完善程序,扩展父类功能。 具体代码: 层次类: 细节类: ...
分类:
其他好文 时间:
2017-08-30 13:22:36
阅读次数:
140
一、引言 上篇博文中我们分享了访问者模式,访问者模式是把作用于数据结构上的操作封装到访问者类中,使得数据结构与操作分离。今天我们要学习的备忘录模式与命令模式有点相似,不同的是,命令模式保存的是发起人的具体命令(命令对应行为),而备忘录模式保存的是发起人的状态(状态对应数据内部结构,如属性)。下面请看 ...
分类:
其他好文 时间:
2017-08-26 19:50:51
阅读次数:
154