设计模式

六大原则:

开闭(扩展而不修改),单一职责(只有一个原因改变类的状态),最少知道(减少耦合),替换(父子继承,子类可替换父类),依赖倒转(依赖抽象),接口隔离(最小接口)

1.策略模式,主要用于解决有多种数据类型或者角色需要以不同的逻辑处理,为每一种类型(角色)绑定自己匹配的逻辑方法,当有新增的类型和处理逻辑时,只需要简单的新增,并绑定就可以,不需要对原有的代码做修改。

2.工厂模式,通过传入的参数,定制的初始化不同的子类实例。

3.代理模式,代理者和被代理者通过实现相同的接口来保持相同的性质,为代理者设置不同的被代理者,可以灵活的变化接口逻辑。

4.单例(多例)模式。。。

5.抽象工厂模式,相对于简单工厂模式,由于需要创建的对象有更多的性质,简单模式无法满足多种类型的制造,所以将通用的创建方法抽象出来,由子类工厂实现具体的制造逻辑(感觉可以和模板方法模式结合)。

6.门面模式,将复杂的处理过程分装在一个执行类中,提供给外界单一的接口,调用者不必关心细节,扩展(修改)过程也会比较方便,用到的原则:“最少知道”,“开闭”

7.适配器模式,初始的开发阶段一般不会应用到该模式,在后续的功能扩展(或接入其他的服务、数据),存在参数格式或者接口不匹配的时候,相当于加一个中间层,来适配两者

8.模板方法模式,一般存在于有继承关系的场景中,模板方法,即可以通用的接口,在抽象类中定义通用的方法(调用抽象方法的顺序),而在子类中各自实现抽象方法的逻辑,基于最少知道原则,可以将抽象方法设为protect

9.建造者模式,相对于简单工厂模式,建造者适用于更复杂的对象的创建中,将组件的创建和组装分离分为builder和director,而工厂模式封装了全部的创建过程

10.桥梁模式

存在一种场景,一种类型中,整体的逻辑不变,但是其中的性质(业务类型)会变化,所以把两者分开,将变化的东西抽象出来,按需求组合。否则,每一种性质都整体生成新的类,维护困难。

11.命令模式

主要有命令类,执行类,为外界封装了需要的命令,调用者不需要知道操作的细节,涉及开闭原则,最少知道,单一职责,接口隔离,替换,依赖倒转

12.装饰模式

通过组合方式,避免了单用继承产生的强关联缺点,分为装饰类和核心业务类,装饰类继承了核心类的抽象接口,又通过组合方式持有核心实现类(核心业务类),可以灵活的装饰不同的装饰类,搭配成不同的处理逻辑,涉及开闭,依赖倒转,组合复用,单一职责,里式替换

13.迭代模式

java.lang包的集合类中有广泛的使用,通过一个迭代类去访问整个数据结构,最少知道原则

14.组合模式

应用于树状结构的初始化中,分为composite和leaf类型,抽象出info等共有的接口和composite(branch)特有的接口,单一职责,接口隔离,里式替换。。。

15.观察者模式,观察者和被观察者,被观察者持有观察者对列(listener),当被观察者执行相关的方法时触发响应的listener(考虑当观察者很多时异步化)

16.责任链模式,链式,串行处理

17.访问者模式,不同的访问者,获取被访问者不同的内容

18.状态模式,状态机和状态抽象,

19.原型模式,通过原型clone,用于new时需要更大的代价(如io,网络,磁盘)

20.中介者模式,当多个类之间相互紧密耦合,添加中介者解开类之间的耦合,使类都只依赖于中介者,会导致中介者逻辑复杂,相对更庞大。

21.解释器模式,java就有解释运行模式,类似的性质

22.享元模式,减少细粒度的实例(当存在很多区别很小的实例时),抽象出相同的性质

23.备忘录模式

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,622评论 6 544
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,716评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,746评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,991评论 1 318
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,706评论 6 413
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 56,036评论 1 329
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 44,029评论 3 450
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,203评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,725评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,451评论 3 361
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,677评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,161评论 5 365
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,857评论 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,266评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,606评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,407评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,643评论 2 380

推荐阅读更多精彩内容

  • 创建型模式 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设...
    liuyang7519阅读 334评论 0 2
  • 创建型模式 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设...
    隔墙送来秋千影阅读 2,683评论 0 11
  • 文章部分内容转载自:http://blog.csdn.net/zhangerqing 一、设计模式的分类 总体来说...
    j_cong阅读 2,082评论 0 20
  • 一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者...
    RamboLI阅读 768评论 0 1
  • 儿子,今天是你16岁的第一天。 和每一个上了高中以后的日子没什么两样,我依旧是走到你的房间,看着你熟睡的样子,不...
    吉林市权红阅读 680评论 0 0