设计模式
设计模式
Gosu不是狗苏
这个作者很懒,什么都没留下…
展开
-
Java设计模式——职责链模式
一、行为型模式介绍职责链模式之前先介绍一下行为型设计模式,因为按照GoF模式分类,职责链就是一种行为型设计模式。行为型设计模式就是主要表示类或者对象之间的关联关系,分为类行为型和对象行为型。类行为型一般都是通过类的继承或者多态等等方式实现。对象行为型就是通过对象的聚合等等关联实现。二、职责链模式定义职责链模式是一种对象行为型模式。根据“合成复用”原则,尽量使用关联来取代类继承,对象行为型可以说是一种不错的行为型模式。职责链模式是一种将请求的发送者和请求处理者分离的一种模式。职责链可以是线型、环型或者原创 2021-09-15 23:09:18 · 129 阅读 · 0 评论 -
Java设计模式——状态模式
模式定义一个对象在其内部状态改变时改变其行为,这个对象我们可以称为状态对象,所以状态模式是一种对象行为型模式。模式结构Context:环境类Context类也可以称之为上下文类,实际上就是拥有状态的对象,可以理解为状态管理器。State:抽象状态类抽象状态类可以是一个接口类或者抽象类,反正实现的话都是通过具体状态类。抽象状态类,封装环境类不同状态下的所有动作方法。ConcreteState:具体状态类具体实现类就比较容易理解了,就是继承抽象状态类,实现具体的方法,不一定所有的抽象方法都有重写原创 2021-09-15 23:07:32 · 124 阅读 · 0 评论 -
Java设计模式——模板方法模式
一、模式定义模板方法模式就是在一个抽象类中定义一些骨架方法,然后通过类继承的方法,将一些方法延迟到继承类里。模板方法模式是一种类行为型模式,是一种比较常用的方法。不属于对象行为型模式,因为只是通过类继承实现。Template Method Pattern: Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses rede原创 2021-09-15 23:06:25 · 103 阅读 · 0 评论 -
Java设计模式——策略模式
一、模式定义策略模式:定义一系列算法,然后将每一个算法封装起来,并将它们可以互相替换。也就是将一系列算法封装到一系列策略类里面。策略模式是一种对象行为型模式。策略模式符合“开闭原则“Strategy Pattern: Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients t原创 2021-09-15 23:05:19 · 75 阅读 · 0 评论 -
Java设计模式——命令模式
一、模式定义命令模式(Command Pattern):将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分离,两者之间通过命令对象进行沟通,方便将命令对象进行储存、传递、调用、增加与管理。命令模式别名为动作(Action)模式或事务(Transaction)模式,属于对象行为型模式。二、模式角色命令模式包括如下角色:Client:客户类,负责调用Command:抽象命令类,声明执行命令的接口,拥有执行命令的抽象方法 execute()。ConcreteCommand:具体命令类,是抽象原创 2021-09-15 23:02:04 · 139 阅读 · 0 评论 -
Java设计模式——迭代器模式
一、模式定义迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor),所以迭代器模式是一种对象行为型。二、模式角色Iterator:抽象迭代器ConcreteIterator:具体迭代器Aggregate:抽象聚合类ConcreteAggregate:具体聚合类三、模式分析对于迭代器模式来说,一个聚合可以有多个遍历。在迭代器模式中,提供了一个外部的迭代器对聚合对象进行访问和遍历,迭代器定义了一个访问聚合对象的接口,原创 2021-09-15 23:00:57 · 136 阅读 · 0 评论 -
Java设计模式——中介者模式
一、模式定义中介者模式(Mediator Pattern):中介者模式就是用一个中介对象来封装一系列的对象的交互,使各对象之间不需要显式地相互作用,降低对象之间的耦合度,中介者是一种对象行为型模式。所以中介者模式适用于对象之间存在大量的关联的情况,假如一个对象改变了,我们就需要跟踪其关联对象,做出对于调整,耦合度是很大的,所以就可以用中介者模式来降低耦合度。二、模式角色中介者模式包括如下角色:Mediator:抽象中介者ConcreteMediator:具体中介者Colleague:抽象同事类原创 2021-09-15 22:59:41 · 110 阅读 · 0 评论 -
Java设计模式——解释器模式
一、模式定义解释器模式(Interpreter Pattern):定义语言的文法,并且建立一个解释器来解释改语言中的句子,这里的“语言”意思是规定格式和语法的代码,所以解释器模式是一种类行为型模式二、模式角色Context: 环境类Client: 客户类AbstractExpression: 抽象表达式TerminalExpression: 终结符表达式NonterminalExpression: 非终结符表达式三、模式分析模式表示,可以使用文法规则或抽象语法树来表示语言文法规则实例:原创 2021-09-15 22:58:12 · 98 阅读 · 0 评论 -
Java设计模式——访问者模式
没有电脑就写的草率了一下,后续补上模式定义访问者模式:表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。所以访问者模式是一种对象行为型模式。模式角色访问者模式包括如下角色:Vistor(抽象访问者)ConcreteVisitor(具体访问者)Element(抽象元素)ConcreteElement(具体元素)ObjectStructure(对象结构)模式分析访问者模式的对象结构存储了不同类型的元素对象,以供不同的访问者访问访问原创 2021-09-15 22:57:02 · 52 阅读 · 0 评论 -
Java设计模式——备忘录模式
没有电脑就写的草率了一下,后续补上一、模式定义备忘录模式(Memento Pattern):备忘录模式的定义是在不破坏封装的前提下,捕获一个对象的内部状态,并将该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。所以备忘录模式就是一种对象行为型模式。二、模式角色备忘录模式包括下面角色Originator(原发器)Memento(备忘录)Caretaker(负责人)备忘录模式包括原发器类,备忘录类和负责人类。原发器可以创建一个备忘录,备忘录类存储原发器类的内部状态,根据原发器来决原创 2021-09-15 22:55:46 · 72 阅读 · 0 评论 -
Java设计模式——组合模式
模式意图介绍模式定义定义之前先介绍一下组合模式的意图。其实就是将对象组合成整体-部分层次的树形结构,客户端调用时,对于调用容器对象或者说组合对象(“树枝”)和单个对象(“树叶”)是一致的。模式定义组合模式(Composite Pattern):组合多个对象形成树形结构来表示“整体-部分”的结构层次。组合模式又称“整体-部分”(Part-Whole)模式,属于对象结构型的设计模式。将对象组合在组件类里,用于描述整体和部分的关系。组合模式对单个对象和组合对象或者说容器对象的使用具有一致性。模式角色组原创 2021-09-07 17:39:34 · 121 阅读 · 0 评论 -
Java设计模式——装饰者模式
核心概念: 动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。重点: 装饰者模式结构重要核心模块:Component(抽象构件)它是具体构件和抽象装饰类的共同父类,声明了在具体构件中实现的业务方法,它的引入可以使客户端以一致的方式处理未被装饰的对象以及装饰之后的对象,实现客户端的透明操作。ConcreteComponent(具体构件)它是抽象构件类的子类,用于定义具体的构件对象,实现了在抽象构件中声明的方法,装饰器可以给它增加额原创 2021-09-07 16:57:48 · 66 阅读 · 0 评论 -
Java设计模式——代理模式
代理模式定义: 为其他对象提供一种代理以控制对这个对象的访问使用场景: 当无法或者不想直接访问某个对象或访问某个对象存在困难时可以同一个代理对象来简介范根,为了保证客户端使用的透明性,委托对象与代理对象需要实现相同的接口。静态代理代理模式的通用模式代码/*** 抽象主题类*/public abstract class Subject { /** * 一个普通的业务方法 */ public abstract visit(); }/** * 实现抽象主题的真实主题类 */pu原创 2021-09-07 16:42:27 · 86 阅读 · 0 评论 -
Java设计模式——门面模式
一、模式定义外观模式:外观模式就是提供一个统一的接口,用来访问子系统的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。,外观模式也称门面模式,是一种对象结构型设计模式。二、模式角色从模式定义可以知道,外观模式应该包含如下角色:Frcade:外观角色SubSystem:子系统角色Client:客户端角色经典例子:public class Facade{ private SubSystemA obj1 = new SubSystemA(); private Sub原创 2021-09-07 17:21:06 · 254 阅读 · 0 评论 -
Java设计模式——享元模式
模式定义享元模式(Flyweight Pattern)就是通过共享技术实现大量细粒度对象的复用。享元模式是通过细粒度对象的共享,所以也可以说享元模式是一种轻量级模式。按照Gof模式分类,享元模式属于对象结构型模式。模式解释可以共享的内容称为内部状态(Intrinsic State),需要外部环境设置的不能共享的内容称为外部状态(Extrinsic State)。享元模式需要创建一个享元工厂负责维护享元池(Flyweight Pool),享元池用于存储具有相同内部状态的享元对象。享元模式中共享的仅仅是原创 2021-09-07 18:01:29 · 110 阅读 · 0 评论 -
Java设计模式——建造者设计模式
一、建造者模式定义 定义: 建造者设计模式是一个构造复杂对象的设计模式,在一个软件系统中,可能会面临创建一个复杂对象的工作,如果使用单一的方法或者单一的对象来创建会比较烦琐,当所创建复杂对象发生改变时,整个系统就可能面临剧烈的变化。这时就需要我们将这个复杂对象的创建过程分解成若干部分,各个子部分用一定的算法构成。但是,子部分可能会经常发生变化,如何能保证整体创建工作的稳定性呢?这就需要建造者模式,建造者模式把复杂对象的创建与表示分离,使得同样的构建过程可以创建不同的表示。二、建造者模式的使用场原创 2021-09-07 16:18:14 · 56 阅读 · 0 评论 -
Java设计模式——适配器模式
模式定义适配器模式(Adapter Pattern):将一个接口转换成客户希望的接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。模式角色适配器模式包括如下角色Traget(目标抽象类)Adapter(适配器类)Adaptee(适配者类)Client(客户类)模式分析适配器模式将目标类和适配者类解耦,引入一个适配器类来重用适配者类,具体的实现是在适配者类的,通过适配器模式,客户端类就不知道适配原创 2021-09-07 17:13:08 · 168 阅读 · 0 评论 -
Java设计模式——桥接模式
模式定义桥接模式(Bridge Pattern)是将抽象部分和实现部分分离,使它们可以独立地改变,是一种对象结构型模式。模式角色桥接模式包含如下角色:Abstraction(抽象类)RefinedAbstraction(扩充抽象类)Implementor(实现类接口)ConcreteImplementor(具体实现类)模式分析桥接模式关键在于如何将抽象化与实现化解耦,使得两者可以独立改变。抽象化:抽象就是忽略一些信息,将不同的实体当作同样的实体对待。在面向对象中将对象的共同性质抽取出原创 2021-09-07 16:49:00 · 75 阅读 · 0 评论