文档章节

设计模式总结

文森特梵高
 文森特梵高
发布于 2015/08/15 16:51
字数 444
阅读 50
收藏 3

模板方法模式

特点是,从宏观上看流程固定,微观上看每个步骤又不同。

比如建别墅和建工厂还是建学校,都是先建地基,然后砌墙,最后装修。

这些步骤都在模板方法中抽象出来。然后不同的类型对每个步骤有不同的做法。

策略模式

在一个类中,持有接口,这个接口有不同行为族。

桥接模式

让接口和实现分离,达到两者能够独立变化的效果。

桥接模式和策略模式十分像。

共同:在抽象那一侧,都是持有接口,而且在抽象那一侧都是调用接口的方法来完成功能。

桥接模式含有了策略模式。

策略模式的目的是,将复杂的算法封装起来,让算法可以相互替换。

状态模式

状态模式,不同状态下的动作不同。

策略模式,不同的鸭子叫声不同,比如红头鸭、绿头鸭等等,将叫声抽象成接口,然后有一个行为族。

模板模式,有一套固定的流程,但是步骤的实现是不同的。

观察者模式

观察者模式有两个组件分别是Subject和Observer。

Subject方有注册、注销、通知三个功能,并且维护这一个观察者队列。

Observer把自己注册到Subject中,也可以注销自己。

Subject在更新数据的时候,顺便通知队列中所有Observer。

装饰模式

装饰模式的两组件,分别是主体和包装。

包装也是主体的子类,并且持有主体。



© 著作权归作者所有

共有 人打赏支持
文森特梵高
粉丝 2
博文 28
码字总数 15386
作品 0
广州
程序员
代理模式(Proxy Pattern):动态代理 - 最易懂的设计模式解析

前言 今天我来全面总结开发中最常用的设计模式 - 代理模式中的动态代理模式 其他设计模式介绍 1分钟全面了解“设计模式” 单例模式(Singleton) - 最易懂的设计模式解析 简单工厂模式(Sim...

Carson_Ho
04/09
0
0
javascript 设计模式之工厂(Factory)模式

工厂模式介绍 工厂模式是一个创建型的模式,主要就是创建对象。其中工厂模式又分为简单工厂模式和抽象工厂模式。简单工厂模式是通过工厂方法确定创建 对应类型的对象。抽象工厂模式是通过子类...

hlxiong
2014/04/14
0
0
(目录)设计模式(可复用面向对象软件的基础)

本系列“设计模式”博客使用Golang语言实现算法。所谓算法是指解决一个问题的步骤,个人觉得不在于语言。小弟只是最近学习Golang,所以顺带熟练一下语法知识,别无它意。 本系列博客主要介绍...

chapin
2015/01/13
0
0
JavaScript常用设计模式

设计模式 设计模式是一种在长时间的经验与错误中总结出来可服用的解决方案。 设计模式主要分为3类: 创建型设计模式:专注于处理对象的创建 Constructor构造器模式,Factory工厂模式,Singl...

a独家记忆
07/13
0
0
【设计模式笔记】(十六)- 代理模式

一、简述 代理模式(Proxy Pattern),为其他对象提供一个代理,并由代理对象控制原有对象的引用;也称为委托模式。 其实代理模式无论是在日常开发还是设计模式中,基本随处可见,中介者模式中...

MrTrying
06/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ubuntu 18.04 desktop 截图快捷键

如图,点击下方的 add shortcut 为这个快捷键命名 输入截图 command gnome-screenshot -a 设置快捷键 常用为 Ctrl - Alt + a 参考 http://os.51cto.com/art/200903/113091_all.htm...

公孙衍
15分钟前
0
0
一个六年Java程序员的从业总结:比起掉发,我更怕掉队

恍然间,发现自己在这个行业里已经摸爬滚打了五、六年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过程中却遭到了重大的挫...

老道士
17分钟前
12
1
Spacemacs快捷键

由于Spacemacs快捷键太多,为方便使用,将常用的快捷键记录在此。 以下快捷键都是在emacs的evil模式下 Buffers操作 创建名称为<buffer-name>的buffer SPC b b <buffer-name> 从已打开的buf...

yxmsw2007
22分钟前
1
0
GO冒泡,二分查找

package mainimport("fmt")func main() {var arr [5]int = [5]int{11,13,9,2,25}maopao(&arr)fmt.Println("arr = ", arr) //[2 9 11 13 25]findIndex := binaryFind(&arr, 0......

汤汤圆圆
46分钟前
1
0
工作2年半跳槽面试阿里,成功拿到offer,凭什么?

2015年刚毕业的我,进入了一家小小的公司实习工作,在学校学了三年软件开发的我,还是想去寻找一份互联网行业的工作,这样更能学以致用发挥自己的特长。一直到18年三月份,我辞掉已有的工作,...

java知识分子
50分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部