【设计模式】GoF设计模式学习总结
什么是设计模式
为解决某一类普遍存在的问题而提供的一种解决方案;
分类及定义
创建型模式(5)
1、原型模式:通过复制一个已存在对象来生成一个新对象,被复制的对象称为原型;详情...
2、单例模式:一个类只有一个全局实例;详情...
3、生成器模式:对复杂对象的创建过程进行抽象,相同的创建步骤,不一样的创建过程实现,生成不同表示的对象;详情...
4、工厂方法模式:具体的工厂对象负责生产具体的产品对象;详情...
5、抽象工厂模式:就是对一组具有相同主题的工厂进行封装;详情...
简单工厂模式:一个工厂方法,依据传入的参数,生成对应的具体产品对象;//不属于gof-23 详情...
结构型模式(7)
1、装饰模式:通过关联机制给类增加行为,其行为的扩展由修饰对象来决定;详情...
2、享元模式:大量细粒度对象共享复用;详情...
3、桥接模式:将对象的行为抽象为接口,作为抽象类的成员属性在抽象层进行组合;详情...
4、组合模式:树形结构的实现,用于描述“整体-部分”的关系;详情...
5、外观模式:在子系统中的接口之上定义一个更高层次的接口,方便使用子系统中的接口;详情...
6、代理模式:通过代理对象间接控制并访问目标对象的方法;详情...
7、适配器模式:适配器是将一种接口改造成另外一种接口的一个包装类;详情...
行为型模式(11)
1、解释器模式:定义一些语法规则,然后定义一个解析器去解析该语法;详情...
2、访问者模式:在不修改已有程序结构的前提下,通过添加额外的“访问者”来完成对已有代码功能的提升;详情...
3、备忘录模式:保存对象的某个状态并可以恢复到该状态;详情...
4、中介者模式:对象之间通过中介者对象进行交互,而不是直接交互;详情...
5、模板方法模式:使用了JAVA的继承机制,在抽象类中定义一个模板方法,该方法引用了若干个抽象方法(由子类实现)或具体方法;详情...
6、责任链模式:为请求创建一个接收者对象的链,每个接收者包含对另一个接收者的引用,当某个接受者不能处理该请求时,将请求转给下一个接受者;详情...
7、命令模式:将请求封装成命令对象,请求的具体执行由命令接收者执行;详情...
8、状态模式:一个对象的行为根据其内部状态的改变自动变化;详情...
9、策略模式:对象的行为,在不同的环境下,有不同的实现;详情...
10、迭代器模式:提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。详情...
11、观察者模式:一对多的关系,又叫发布-订阅模式,即一个对象的状态发生变化,所有依赖它的对象能够知道该变化并自动更新;详情...
涉及的相关的设计原则
- 单一职责原则
- 里氏替换原则
- 依赖倒置原则
- 接口隔离原则
- 迪米特法则
- 开闭原则
使用频率排序
创建型模式(5)
工厂方法模式:★★★★★
抽象工厂模式:★★★★★
单例模式:★★★★☆
简单工厂模式:★★★★☆ //不属于gof-23
原型模式:★★★☆☆
生成器模式:★★☆☆☆
结构型模式(7)
外观模式:★★★★★
代理模式:★★★★☆
组合模式:★★★★☆
适配器模式:★★★★☆
桥接模式:★★★☆☆
装饰模式:★★★☆☆
享元模式:★☆☆☆☆
行为型模式(11)
迭代器模式:★★★★★
观察者模式:★★★★★
命令模式:★★★★☆
策略模式:★★★★☆
模板方法模式:★★★☆☆
责任链模式:★★★☆☆
状态模式:★★★☆☆
备忘录模式:★★☆☆☆
中介者模式:★★☆☆☆
解释器模式:★☆☆☆☆
访问者模式:★☆☆☆☆
另外,网上看到一张图片,总结的挺好的
图片来自:链接

【设计模式】GoF设计模式学习总结的更多相关文章
- GOF设计模式快速学习
这段时间,学习状态比较一般,空闲时基本都在打游戏,和研究如何打好游戏,终于通过戏命师烬制霸LOL,玩笑了.为了和"学习"之间的友谊小船不翻,决定对以往学习过的GOF设计模式做一个简 ...
- GOF设计模式特烦恼
这段时间,学习状态比较一般,空闲时基本都在打游戏,和研究如何打好游戏,终于通过戏命师烬制霸LOL,玩笑了.为了和"学习"之间的友谊小船不翻,决定对以往学习过的GOF设计模式做一个简 ...
- GoF设计模式三作者15年后再谈模式
Erich Gamma, Richard Helm, 和 Ralph Johnson在GoF设计模式发表15年以后,再谈模式,另外一位作者,也是四色原型的发明者Peter已经过世. 提问者:如今有85 ...
- 在GoF设计模式
在GoF设计模式中,结构型模式有: 1.适配器模式 Adapter 适配器模式是将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. ...
- 猿取向的规划设计模式 ——GoF《设计模式》阅读摘要(零)
这个话题是很奇怪,设计模式是引导程序的设计不是模仿什么软件?呃.我的意思是,这是 面"对象"相对的设计模式. 我曾见过有人写<给妻子解释设计模式>,这样的把计算机中的思 ...
- GoF设计模式 - 概述
掌握编程语言仅仅意味着掌握了如何给计算机"下命令",而到底要计算机如何去做,怎么指挥,则是另一个问题--如何编程.设计模式是一套程序员的"武功套路",它教我们如 ...
- OOAD-设计模式(二)之GRASP模式与GOF设计模式概述
一.GRASP模式(通用责任分配软件模式)概述 1.1.理解责任 1)什么是责任 责任是类间的一种合约或义务,也可以理解成一个业务功能,包括行为.数据.对象的创建等 知道责任——表示知道什么 行为责任 ...
- 8.5 GOF设计模式四: 观察者模式Observer
GOF设计模式四: 观察者模式Observer 现实中遇到的问题 当有许多不同的客户都对同一数据源感兴趣,对相同的数据有不同的处理方式,该如 何解决?5.1 定义: 观察者模式 观察者模式 ...
- 8.4 GOF设计模式三: 外观模式 Facade
GOF设计模式三: 外观模式 Facade “现有系统”功能强大.复杂,开发“新系统”需要用到其中一部分,但又要增加一部 分新功能,该怎么办?4.1 Facade Pattern: Key Fea ...
- 8.3 GOF设计模式二: 适配器模式 Adapter
GOF设计模式二: 适配器模式 Adapter 为中国市场生产的电器,到了美国,需要有一个转接器才能使用墙上的插座,这个转接 器的功能.原理?复习单实例模式 SingleTon的三个关键点 ...
随机推荐
- Java 程序的打包、签名和验证
参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找到这个总入口 Java SE 8 Document ...
- 理解Session与Cookie
写在前面的话:Session和Cookie是非常有意思的两个概念,对于两者的管理可以处理的很复杂,但是无论如何,理解Session和Cookie的基本概念和发明初衷,对于问题的解决,大有裨益. === ...
- backup2:数据库还原
数据库还原的操作,分两步进行:第一步,验证(verify)备份文件:第二步,根据备份策略还原数据库: 参考<backup1:开始数据库备份>,备份策略是: 一周一次完整备份,一天一次差异备 ...
- 【Win 10 应用开发】加载外部的 srt 字幕
据说系统内置的多媒体功能支持 srt. ssa 等字幕,老周测试过几种格式的字幕均能加载. SRT 字幕是最简单的字幕结构,甚至你用记事本都能做出来,就是分为几行来写. 第一行是字幕的编号,应该是从1 ...
- 4. SVM分类器求解(2)
最优间隔分类器(optimal margin classifier) 重新回到SVM的优化问题: 我们将约束条件改写为: 从KKT条件得知只有函数间隔是1(离超平面最近的点)的线性约束式前面的系数,也 ...
- [C#] Linq To Objects - 如何操作字符串
Linq To Objects - 如何操作字符串 开篇语: 上次发布的 <LINQ:进阶 - LINQ 标准查询操作概述>(90+赞) 社会反响不错,但自己却始终觉得缺点什么!“纸上得来 ...
- url 编码(percentcode 百分号编码)(转载)
原文地址:http://www.cnblogs.com/leaven/archive/2012/07/12/2588746.html http://www.imkevinyang.com/2009 ...
- Oracle基础维护02-表、主键、索引、表结构维护手册
目录 一.项目新建表.主键.索引注意事项 二.举例说明建表.主建.索引的操作方法 2.1 设定需求如下 2.1.1 查询数据库有哪些表空间 2.1.2 本文档假设数据库有这两个业务用户的表空间 2.2 ...
- Linux上oracle精简版客户端快速部署
RHEL6 + Oracle 11g客户端快速部署 需求:只是用到客户端的sqlplus, sqlldr功能. 方案:用精简版实现客户端的快速部署 1.上传oracle精简版客户端到服务器/tmp目录 ...
- js模块定义——支持CMD&AMD&直接加载
/* animate */ //直接加载 (function() { var animate = {} //balabala window.animate = animate; })(); //AMD ...