摘要: 职责链模式 职责链模式(Chain of Responsibility Patterm),又叫责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。 职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下 阅读全文
posted @ 2020-12-01 14:55 Maple_XL 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 策略模式 策略模式( Strategy Pattern)中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式.让算法的变化独立于使用算法的客户 这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口) ;第三、多用组合/聚 阅读全文
posted @ 2020-12-01 14:54 Maple_XL 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 状态模式 状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的, 状态之间可以相互转换 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类 Context类为环境角色,用于维护State实例,这个实例定 阅读全文
posted @ 2020-12-01 14:51 Maple_XL 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 解释器模式 在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器 解释器模式( Interpreter Pattern) 😗*是指给定-一个语言(表达式),定义它的文法的 阅读全文
posted @ 2020-12-01 14:49 Maple_XL 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式 备忘录模式(Memento Pattem)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态 可以这里理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层 阅读全文
posted @ 2020-12-01 14:47 Maple_XL 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 中介者模式 中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互。 中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 中介者模式属于行为型模式,使代码易于维护 比如MVC模式,C (Controller 控制器)是M (Mode 阅读全文
posted @ 2020-12-01 14:45 Maple_XL 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 观察者模式 观察者模式类似订牛奶业务 奶站/气象局: Subject 用户/第三方网站: Observer Subject:登记注册、移除和通知 registerObserver注册 removeObserver移除 notifyObservers()通知所有的注册的用户,根据不同需求,可以是更新数 阅读全文
posted @ 2020-12-01 14:43 Maple_XL 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式 迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式 如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。 迭代器模 阅读全文
posted @ 2020-12-01 14:42 Maple_XL 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 访问者模式 访问者模式(VisitorPatterm),封装--些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题 访问者模式的基本工作原理是:在被访问的类里面加一一个对外提供接待访问者的接口 阅读全文
posted @ 2020-12-01 14:40 Maple_XL 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 命令模式 命令模式(Command Pattern) :在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计 命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象 阅读全文
posted @ 2020-12-01 14:38 Maple_XL 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 模板模式 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern), 在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 简单说,模板方法模式定义一个操作中的算法的骨架,而将- - 些步 阅读全文
posted @ 2020-12-01 14:36 Maple_XL 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 享元模式 享元模式(Flyweight Patterm)也叫 蝇量模式:运用共享技术有效地支持大量细粒度的对象 常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建-一个 享元模式能够解决 阅读全文
posted @ 2020-12-01 14:35 Maple_XL 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 外观模式 外观模式(Facade) ,也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节 应用实例 组 阅读全文
posted @ 2020-12-01 14:33 Maple_XL 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 组合模式 组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体部分”的层次关系。 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。 这种类型的设计模式属于结构型模式。 组合模式使得用户对单个对象和组合对象的访问具有一致 阅读全文
posted @ 2020-12-01 14:32 Maple_XL 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式 装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp) 装饰者模式原理 装饰者模式就像打包一个快递 主体: 比如:陶瓷、衣服(Component)//被装饰者包装: 比如:报纸填充、塑料泡沫、纸板、木板(Decorator) C 阅读全文
posted @ 2020-12-01 14:31 Maple_XL 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 桥接模式 问题 现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网, 打电话等),如图: 桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。 是一种结构型设计模式 Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类 阅读全文
posted @ 2020-12-01 14:29 Maple_XL 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 适配器模式 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两 个类可以协同工作。其别名为包装器(Wrapper) 适配器模式属于结构型模式 主要分为三类:类适配器模式、对象适配器模式、接口适配器模式 工作 阅读全文
posted @ 2020-12-01 14:28 Maple_XL 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 建造者模式 建造者模式(BuilderPattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 建造者模式是一步一步创建-一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们, 阅读全文
posted @ 2020-12-01 14:26 Maple_XL 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 原型模式 克隆羊问题 现在有一只羊tom,姓名为: tom,年龄为: 1,颜色为:白色,请编写程序创建和tom羊属性完全相同的10 只羊。 传统方式解决克隆羊问题 public class Client { public static void main(String[] args) { // TO 阅读全文
posted @ 2020-12-01 14:25 Maple_XL 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式 工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式将对象的实例化推迟到子类 public abstract class OrderPizza { //定义一个抽象方法,createPizza , 让各个工厂子类自己实现 abstract Pizza cre 阅读全文
posted @ 2020-12-01 14:24 Maple_XL 阅读(131) 评论(0) 推荐(0) 编辑