目录:
设计模式要从语义上出发,而不要从语法上出发,其实设计模式归根结底就是多态的有计划的组合。
设计模式(2)------行为型模式------观察者设计模式
想想气象站,根据天气的变化动态的通知观众实时天气。当一个对象的状态改变时,通知另一个对象作出相应的改变,而中间的观察和通知者就是主要的观察者设计模式。出版者+订阅者=观察者模式
设计模式(3)------行为型模式------观察者设计模式(jdk自带)
设计模式(4)------结构型模式------装饰者设计模式
想想inputStream它的铺天盖地的包装类。加一层包装就多一个功能。
设计模式(5)------结构型模式-----装饰者设计模式(IO流的应用)
设计模式(6)------结构型模式------装饰者设计模式(案例补充)
设计模式(7)-----创建型模式-----工厂设计模式(简单工厂设计模式)
设计模式(8)-----创建型模式----- 工厂设计模式(工厂模式)
想想spring创建bean对象。一个产品类对应着一个产品工厂类。
设计模式(9)----- 创建型模式-----工厂设计模式(抽象工厂模式)
想想spring创建bean对象。一组产品对应着一个产品工厂类
设计模式(9)----- 补充spring中的工厂设计模式(手写IOC容器)
设计模式(10)-----创建型模式----- 单例设计模式
想想springmvc的单例设置。内存中永远有一个对象。
设计模式(12)----- 行为型模式-----命令设计模式(升级----一个开关控制多条命令)
设计模式(13)----- 行为型模式-----命令设计模式(升级----加一个撤销的命令)
设计模式(14)----- 行为型模式-----命令设计模式(升级----一个命令对象执行多条命令)
就是让请求者和执行者之间解耦,主要通过命令来调用相应的动作。
最基本的设计模式,就是在算法之间随意的切换,主要是多态。
设计模式(16)-----结构型模式-----适配器设计模式
在实现了接口的内部调用其它的方法。偷换概念
就是留一个方法,统一调用里面一组的数据。有点类似于抽象工厂设计模式。
其实和外观有点像,只不过模板没有外观那么简洁,可能4个方法是一套流程,但是只有两个是用模板的。
设计模式(19)-----行为型模式-----迭代器设计模式
可以迭代不同数据结构的数据。
想想菜单和菜单项
每个状态对应着不同的行为(类或者方法)
设计模式(22)-----结构型模式-----代理设计模式-----静态代理
设计模式(23)-----结构型模式-----代理设计模式-----动态代理
找中介来处理这个问题。有点类似于中介模式。
设计模式(24)-----行为型模式-----责任链模式-----拦截器设计模式
想想拦截器,一层层的拦截就是责任链模式。
就是clone
就是把创建复杂的对象简单化
通过过滤器可以吧想要的信息过来过阿里,就是一个过滤器而已。
减少创建对象的数目,它和单例不一样的地方就是无论如何,内存中就一个对象这事单例,一个对象假如根据某个属性来判断是不是相同的话,可能调用了20次只创建了5个对象。
设计模式(29)-----行为型模式-----解释器设计模式
是不是?是或者不是
设计模式(30)-----行为型模式-----中介者设计模式
假如现在有100个对象,他们互相之间都有联系,通过中介模式让他们去掉联系,所有的联系都指向中介,这样会条理清晰许多。
设计模式(31)-----行为型模式-----备忘录设计模式
想想ctr+z,对以前操作的信息做一个保留,比如存到map中或者list中,想去找到以前操作的信息的话直接去取就行了
设计模式(32)-----行为型模式-----空对象设计模式
假如不为空到一个类中,假如为空到另一个类中,空和非空都实现相同的接口。但是相同的方法里面处理的逻辑不一样。
设计模式(33)-----行为型模式-----访问者设计模式
想想权限就行了,不同的访问者可以设置不同的方法
主要是两个层面的对象随机的组合。比如说男生,女生一个层面,结婚,单身另一个层面,两个层面可以随机的组合。
原文地址:https://www.cnblogs.com/qingruihappy/p/9928330.html