设计模式建议学习顺序

学习顺序设计模式常用程度适用层次引入时机结构复杂度变化实现体现的原则
1Factory Method很常用代码级编码时简单子类的实例化对象的创建工作延迟到子类开闭原则
2Singleton很常用代码级、应用级设计时、编码时简单唯一实例封装对象产生的个数 
3Facade很常用应用级、构架级设计时、编码时简单子系统的高层接口封装子系统开闭原则
4Template Method很常用代码级编码时、重构时简单算法子步骤的变化封装算法结构依赖倒置原则
5Abstract Factory比较常用应用级设计时比较复杂产品家族的扩展封装产品族系列内容的创建开闭原则
6Composite比较常用代码级编码时、重构时比较复杂复杂对象接口的统一统一复杂对象的接口里氏代换原则
7Proxy比较常用应用级、构架级设计时、编码时简单对象访问的变化封装对象的访问过程里氏代换原则
8Command比较常用应用级设计时、编码时比较简单请求的变化封装行为对对象开闭原则
9Observer比较常用应用级、构架级设计时、编码时比较简单通讯对象的变化封装对象通知开闭原则
10Strategy比较常用应用级设计时一般算法的变化封装算法里氏代换原则
11Builder一般代码级编码时一般对象组建的变化封装对象的组建过程开闭原则
12Adapter一般代码级重构时一般对象接口的变化接口的转换 
13Bridge一般代码级设计时、编码时一般对象的多维度变化分离接口以及实现开闭原则
14Decorator一般代码级重构时比较复杂对象的组合职责在稳定接口上扩展开闭原则
15Iterator一般代码级、应用级编码时、重构时比较简单对象内部集合的变化封装对象内部集合的使用单一职责原则
16Mediator一般应用级、构架级编码时、重构时一般对象交互的变化封装对象间的交互开闭原则
17Memento一般代码级编码时比较简单状态的辅助保存封装对象状态的变化接口隔离原则
18State一般应用级设计时、编码时一般对象状态的变化封装与状态相关的行为单一职责原则
19Visitor一般应用级设计时比较复杂对象操作变化封装对象操作变化开闭原则
20Prototype不太常用应用级编码时、重构时比较简单实例化的类封装对原型的拷贝依赖倒置原则
21Flyweight不太常用代码级、应用级设计时一般系统开销的优化封装对象的获取 
22Chain of Resp.不太常用应用级、构架级设计时、编码时比较复杂对象的请求过程封装对象的责任范围 
23Interpreter不太常用应用级设计时比较复杂领域问题的变化封装特定领域的变化 

学会一个项目中尝试有相应的场景使用一个才是王道。

转载于:https://www.cnblogs.com/guola/archive/2013/01/02/2841997.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MSFT Outlook VBA处理新邮件的方法

俺们有两个邮箱,1个外部的邮箱1(outlook),1个内部邮箱0(lotus notes)。想要outlook邮箱收到新邮件之后判断一下subject的内容,如果是"kkk:"开头,则将"kkk:"后面…

炸了!中国学者首次被Science撤稿,与之前首次被Nature撤稿的教授来自同一所大学……...

全世界只有3.14 % 的人关注了爆炸吧知识两次撤稿并非学术造假?国庆假期结束的第一天,Science杂志将中国地质大学宋怀兵副教授两个月前发表的文章进行了撤稿处理。这也是新中国建国以来,首次被Science撤稿的论文。其实早在8月,Scie…

linux 查询oracle情况,在Linux下使用SQLPlus查看Oracle数据库表空间及使用率

在Linux下进入SQLPlus,# su – oracle$ sqlplus / as sysdbaSQL>查看一个表空间所对应的数据文件SQL>select file_name from dba_data_fileswhere tablespace_name’BING’;FILE_NAME———————————————————————————————————…

如何编写干净流畅的Web API测试

前言当我们为Web API编写测试用例时&#xff0c;代码基本是这样的&#xff1a;public class UnitTest1 {private readonly TestServer _server;private readonly HttpClient _client;public UnitTest1(){// Arrange_server new TestServer(new WebHostBuilder().UseStartup<…

SFB2015 多SIP域

SFB2015 多SIP域最近公司有打算要安装最新的SFB2015作为一个SFB小白 在通读了官方安装文章之后竟然磕磕绊绊的安装成功&#xff0c;客户端登录也是成功的&#xff0c;下面就有一个十分蛋疼的问题 公司内外网域名不一致虽然在进行拓扑准备的时候进行了多SIP域的准备&#xff0c;…

SWFUpload V2.2.0 说明文档

http://leeon.me/upload/other/swfupload.html#overview

java经典问题总结

一、考虑用静态工厂方法代替构造器&#xff1a; 构造器是创建一个对象实例最基本也最通用的方法&#xff0c;大部分开发者在使用某个class的时候&#xff0c;首先需要考虑的就是如何构造和初始化一个对象示例&#xff0c;而构造的方式首先考虑到的就是通过构造函数来完成&#…

中国25个最“吓人”地名,看完都被吓笑了!

全世界只有3.14 % 的人关注了爆炸吧知识转自&#xff1a;中学地理课中国人起名字&#xff0c;是很有讲究的。不管是起人名&#xff0c;还是起地名&#xff0c;和作诗差不多&#xff0c;都是在营造一个意境。就拿北京来说吧&#xff0c;比如颐和园&#xff0c;听着端庄&#xff…

C语言控制流对应的汇编语句

最近在看《深入理解计算机系统》&#xff0c;发现汇编挺有趣。 1.条件分支&#xff1a;if语句 下面是一个简单的ifelse函数&#xff1a; int absdiff(int x, int y) {if (x < y)return y - x;elsereturn x - y; } 对这个程序使用如下命令&#xff0c;得到汇编程序&#xff0…

C# 显式接口成员实现

如果类实现两个接口&#xff0c;并且这两个接口包含具有相同签名的成员&#xff0c;那么在类中实现该成员将导致两个接口都使用该成员作为它们的实现。然而&#xff0c;如果两个接口成员实现不同的功能&#xff0c;则可能会导致其中一个接口的实现不正确或两个接口的实现都不正…

oracle 加密怎么解密,oracle加密encrypt,解密decrypt,

oracle加密encrypt,解密decrypt&#xff0c;目录oracle加密encrypt,解密decrypt加密解密oracle加密encrypt,解密decrypt有的oracle版本没有加解密函数&#xff0c;以下操作可以手动添加oracle数据使用加密解密&#xff0c;我们首先要先赋予dbms_crypto权限给用户。grant execut…

C语言可变参数宏

岁月不饶人&#xff0c;这年纪大了记忆力真是差了很多。今天写程序需要用到可变参数的宏&#xff0c;可是忘了怎么写&#xff0c;这倒也没什么&#xff0c;因为我一向是不记忆这些语法细节的&#xff0c;反正我知道程序里有个地方用到了这种技巧&#xff0c;但是可悲的是我忘了…

没有数学天赋是一种什么体验?

全世界只有3.14 % 的人关注了爆炸吧知识虽然我不懂但我热爱数学♪没有数学天赋是一种什么体验&#xff1f;1 看不懂懵逼矩阵2 小学数学不及格&#xff0c;找了个纹身店&#xff0c;问老板纹个九九乘法口诀多少钱。老板说了一个价钱&#xff0c;后来因算不出要存多少天早餐钱而作…

20151026c#2

变量是内存里存储的&#xff0c;运行在cpu里的。 数据类型 值类型&#xff1a;所有的数值类型都是值类型&#xff08;short int long float double、bool)、枚举、结构 引用类型&#xff1a;对象、字符串、object、数组 区别&#xff1a; 1、值类型 class Program{static void …

aix 安装oracle9,IBM P570 小型机AIX5.3系统安装ORACLE9i

IBM P570小型机AIX5.3系统安装ORACLE9i(图略)数据库系统安装概叙本文写在Oracle安装完后&#xff0c;根据实际安装情况写的操作小节。详细叙述了安装过程中的每一个步骤。硬件系统为IBM P570小型机&#xff0c;配两块硬盘&#xff1b;阵列为IBM DS43002T7块硬盘&#xff0c;每块…

beautiful sentences

The most splendid achievement of all is the constant striving to surpass yourself and to be worthy of your own approval. This is how happiness blooms.人生最大的成就是不断的超越自己&#xff0c;并无愧于自己的内心。这是幸福的源泉。So don’t wait for someone t…

数字化如何界定IT与OT?

信息技术蓬勃发展并与制造业加速融合&#xff0c;拉开数字化转型大幕。而在工业领域中&#xff0c;IT&#xff08;Information Technology&#xff09;信息技术与OT&#xff08;Operation Technology &#xff09;操作技术之间天然存在着种种差异&#xff0c;两者都有各自的目标…

java宝典

说明&#xff0c;为了减轻大家的负担和节省大家的时间&#xff0c;一些过时知识点和被笔试概率极低的题目不再被收录和分析。 回答问题的思路&#xff1a;先正面叙述一些基本的核心知识&#xff0c;然后描述一些特殊的东西&#xff0c;最后再来一些锦上添花的东西。要注意有些…

Android手机通过电脑上网的几种方法

本文定位&#xff1a;没有wifi&#xff0c;想让手机通过电脑的有线连接上网。 android手机可以通过wifi上网&#xff0c;这个很好。可当没有wifi的时候怎么上啊&#xff0c;3G--->流量受限&#xff0c;看视频很不划算&#xff01;我这里总结了几种方法供大家参考。 方法一&a…

一个常见的物理现象,直今还是未解之谜!

全世界只有3.14 % 的人关注了爆炸吧知识在我们的日常生活中存在着很多有趣的物理现象&#xff0c; 科学家对这些现象进行深入研究后&#xff0c;可以通过这些现象延伸&#xff0c;从而在前沿科技发展上得到很大的帮助&#xff0c;甚至去解决宇宙中出现的难题。但是在日常生活中…