![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 90
Regan_zhx
一码当先,码到功成
需要博客相关资料可以加QQ:1334724312
展开
-
中介模式
中介模式参考文献中介模式(Mediator Pattern)又叫调停模式,属于对象行为型模式,它是迪米特法则的典型应用。定义:定义一个中介对象来封装一系列对象之间的交互,使对象不需要显式地相互引用,从而使其耦合松散,且可以独立地改变它们之间的交互。使用频率:2星模式结构:1、抽象中介者(Mediator)角色:它是中介者的接口,提供了同事对象注册与转发同事对象信息的抽象方法。2、具体中介者(Concrete Mediator)角色:实现中介者接口,定义一个 List 来管理同事对象,协调各个同事转载 2021-04-09 11:47:29 · 258 阅读 · 0 评论 -
访问者模式
访问者模式一、访问者模式二、访问者模式实例之奖励审批1.实例说明2.实例类图3.实例代码参考文献一、访问者模式访问者模式(Visitor Pattern)属于对象行为型模式,它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。使用频率:1星模式结构:1、抽象访问者(Visitor)角色:定义一个访问具体元素的接口,转载 2021-04-08 10:27:21 · 320 阅读 · 0 评论 -
状态模式
状态模式一、状态模式二、状态模式实例之银行账户1.实例说明2.实例类图3.实例代码参考文献一、状态模式状态模式(State Pattern)属于对象行为型模式,别名为状态对象(Objects for States)。很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫作状态,这样的对象叫作有状态的(Stateful)对象,对象状态是从事先定义好的一系列值中取出的。定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。使用频原创 2021-04-07 12:18:17 · 775 阅读 · 0 评论 -
解释器模式
解释器模式一、解释器模式二、解释器模式实例之机器人控制程序1.实例说明2.实例类图3.实例代码参考文献一、解释器模式解释器模式(Interpreter Pattern)属于类行为模式,描述了如何为语言定义一个方法,如何在该语言中定义一个句子,以及如何解释这些句子,这里语言的意思是使用规定格式和语法的代码。定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文原创 2021-04-06 11:56:05 · 312 阅读 · 0 评论 -
策略模式
策略模式一、策略模式二、策略模式实例之电影票打折1.实例说明2.实例类图3.实例代码参考文献一、策略模式策略模式(Strategy Pattern)属于对象行为模式,别名政策模式。定义:该模式定义了一系列算法(每个封装算法的类称为策略),并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。使用频率:4星模式结构:1、抽象策略(Strategy)类:定义了一个公共接口,各种不原创 2021-04-05 12:24:51 · 1236 阅读 · 0 评论 -
迭代器模式
迭代器模式一、迭代器模式二、迭代器模式实例之商品名称遍历1.实例说明2.实例类图3.实例代码参考文献一、迭代器模式迭代器模式(Iterator Pattern)是一种对象行为型模式,别名为游标(Cursor)。定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。使用频率:5星模式结构:1、抽象聚合(Aggregate)角色:定义存储、添加、删除聚合对象以及创建迭代器对象的接口。2、具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器原创 2021-04-04 10:56:27 · 2952 阅读 · 0 评论 -
备忘录模式
备忘录模式一、备忘录模式二、备忘录模式实例之游戏恢复点设置1.实例说明2.实例类图3.实例代码参考文献一、备忘录模式备忘录模式(Memento Pattern)是一种对象行为型模式,又叫快照模式,别名为Token。定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。使用频率:2星模式结构:备忘录模式的主要角色如下:1、发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能原创 2021-04-03 10:16:45 · 189 阅读 · 0 评论 -
命令模式
命令模式一、命令模式二、命令模式实例之1.实例说明2.实例类图3.实例代码参考文献一、命令模式命令模式(Template Method Pattern)是一种类行为型模式。定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。使用频率:5星模式结构:命令模式结构图:优点:缺点:应用场景:二、命令模式实例之1.实例说明2.实例类图3.实例代码参考文献【1】模板方法模式(模板方法设计模式)详解【2】设计模式原创 2021-04-02 12:16:52 · 1292 阅读 · 0 评论 -
模板方法模式
模板方法模式一、模板方法模式二、模板方法模式实例之数据库操作1.实例说明2.实例类图3.实例代码参考文献一、模板方法模式模板方法模式(Template Method Pattern)是一种类行为型模式。定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。使用频率:3星模式结构:模板方法模式包含以下主要角色:1)抽象类/抽象模板(Abstract Class)抽象模板类,负责给出一个算法的轮廓和骨架。它由一个模板方法和原创 2021-04-01 10:25:36 · 1244 阅读 · 0 评论 -
观察者模式
观察者模式一、观察者模式二、观察者模式实例之股票变化1.实例说明2.实例类图3.实例代码参考文献一、观察者模式观察者模式(Observer Pattern)也叫发布-订阅模式、模型-视图模式,是一种对象行为型模式。定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。使用频率:5星模式结构:观察者模式的主要角色如下:1、抽象主题(Subject)角色:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及原创 2021-03-31 10:46:24 · 3510 阅读 · 0 评论 -
职责链模式
职责链模式一、职责链模式二、职责链模式实例之在线文档帮助系统1.实例说明2.实例类图3.实例代码参考文献一、职责链模式职责链模式(Chain of Responsibility Pattern)也叫责任链模式,是一种对象行为型模式。定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。使用频率:2星模式结构:职责链模式主要包含以下角色:1、抽象处理者(Handler原创 2021-03-30 10:54:11 · 1433 阅读 · 0 评论 -
享元模式
享元模式一、享元模式二、享元模式实例之围棋棋子1.实例说明2.实例类图3.实例代码参考文献一、享元模式享元模式(Flyweight Pattern)是一种对象结构型模式,本质是缓存共享对象,降低内存消耗。定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。使用频率:1星模式结构:享元模式的主要角色有如下:1、抽象享元角色(Flyweight):是所有的具体享元类的基类,为具体享元规范需要实现原创 2021-03-29 10:49:33 · 1412 阅读 · 0 评论 -
代理模式
代理模式一、代理模式二、代理模式实例之日志记录代理1.实例说明2.实例类图3.实例代码参考文献一、代理模式代理模式(Proxy Pattern)可给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英文叫做Proxy或Surrogate,代理模式是一种对象结构型模式。定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。使用频率:4星模式结构:代理模式的主要角色如下:1、抽象主题(原创 2021-03-28 11:51:48 · 465 阅读 · 0 评论 -
外观模式
外观模式一、外观模式二、外观模式实例之文件加密1.实例说明2.实例类图3.实例代码参考文献一、外观模式外观(Facade)模式又叫作门面模式,属于对象结构型模式。定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。使用频率:5星模式结构:外观(Facade)模式包含以下主要角色:1、外观(Facade)角色:为多个子系统对外提供一个共同原创 2021-03-27 11:55:42 · 919 阅读 · 0 评论 -
装饰器模式
装饰器模式一、装饰器模式二、装饰器模式实例之界面显示构件库1.实例说明2.实例类图3.实例代码参考文献一、装饰器模式装饰器模式(Decorator Pattern)别名为包装器(Wrapper),是一种对象结构型模式。定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,就扩展功能而言它比生成子类的方式更为灵活使用频率:3星模式结构:装饰器模式主要包含以下角色:1、抽象构件(Component)角色:定义一个抽象接口以规范准备接收附加责任的对象。2、具体原创 2021-03-26 11:14:05 · 1725 阅读 · 0 评论 -
组合模式
组合模式一、组合模式二、组合模式实例之杀毒软件1.实例说明2.实例类图3.实例代码参考文献一、组合模式组合(Composite Pattern)模式有时又叫作整体-部分(Part-Whole)模式,属于结构型设计模式。组合模式分为透明式的组合模式和安全式的组合模式。定义:它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性使用频率:4星模式结构:组合模式包含以下主要角色:1、抽象构件(Component)角色:它的主要作用是为树叶原创 2021-03-25 11:51:33 · 565 阅读 · 0 评论 -
桥接模式
桥接模式一、桥接模式二、桥接模式实例之跨平台视频播放器1.实例说明2.实例类图3.实例代码参考文献一、桥接模式桥接模式(Bridge Pattern)是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。定义:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。使用频率:3星模式结构:桥接(Bridge)模式包含以下主要角色:1、抽象化(Abstraction)角色:定义抽象类,并原创 2021-03-24 12:23:52 · 498 阅读 · 0 评论 -
适配器模式
适配器模式一、适配器模式二、适配器模式实例之算法适配1.实例说明2.实例类图3.实例代码参考文献一、适配器模式适配器模式(Adapter Pattern)分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。定义:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作,其别名为包装器(Wrapper)。使用频率:4星模式结构:适配器模式(Adapter)包含以下主要角色。原创 2021-03-23 13:49:24 · 958 阅读 · 0 评论 -
建造者模式
建造者模式一、建造者模式二、建造者模式实例之游戏人物角色1.实例说明2.实例类图3.实例代码三、建造者模式和工厂模式的区别参考文献一、建造者模式建造者模式(Builder Pattern)是一种对象创建型模式。定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。使用频率:2星建造者模式结构图:优点:原创 2021-03-22 11:16:59 · 1773 阅读 · 0 评论 -
原型模式
原型模式一、原型模式二、原型模式实例之快速创建工作周报1.实例说明2.实例类图3.实例代码参考文献一、原型模式原型模式(Prototype Pattern)是一种对象创建型模式。定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。使用频率:3星原型模式结构图:优点:1、Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。原创 2021-03-21 10:58:24 · 1027 阅读 · 0 评论 -
单例模式
单例模式一、单例模式二、单例模式的实现1.懒汉式单例2.饿汉式单例参考文献一、单例模式单例模式(Singleton Pattern)确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它确保全局访问方法。单例模式是一种对象创建型模式,包括懒汉式单例和饿汉式单例两种实现方式,其中懒汉式在第一次调用工厂方法getInstance时创建单例对象,而饿汉式单例是在类加载时创建单例对象,即在声明静态单例对象时实例化单例类。使用频率:4星懒汉式单例模式结构图:优点:1、单例原创 2021-03-20 12:36:52 · 174 阅读 · 1 评论 -
抽象工厂模式
抽象工厂模式一、抽象工厂模式二、抽象工厂模式实例之数据库操作工厂1.实例说明2.实例类图3.实例代码参考文献一、抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是所有形式的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式又称为Kit模式,属于对象创建型模式。在抽象工厂模式中,引入了产品等级结构和产品族的概念,产品等级结构是指抽象产品与具体产品所构成的继承层次关系,产品族(Product Family)是同一个工厂所生产的一系列产品,即位于不同产品等级结构且功能相关联的产原创 2021-03-19 15:21:57 · 1952 阅读 · 0 评论 -
工厂方法模式
工厂模式一、工厂方法模式二、工厂方法模式实例之日志记录器1.实例说明2.实例类图3.实例代码参考文献一、工厂方法模式工厂方法模式(Factory Method Pattern)也称为工厂模式,又称为虚拟构造器(Virtual Constructor)模式或多态模式,属于类创建型模式。在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化哪个类。定义:定义一个用于创建对象的接口,让子类决定哪个类实例化。工厂原创 2021-03-18 12:39:23 · 488 阅读 · 0 评论 -
设计模式起点之简单工厂模式
文章目录前言一、简单工厂模式二、简单工厂模式实例之图形工厂1.实例说明2.实例类图3.实例代码参考文献前言简单工厂模式并不是GoF 23个设计模式中的一员,但是一般将其作为学习设计模式的起点。在简单工厂模式中,可以根据参数的不同返回不同的类的实例,简单工厂模式专门定义一个类来负责创建其他类的实例,这个类称为工厂类,被创建的实例通常都具有共同的父类。一、简单工厂模式**简单工厂模式(Simple Factory Pattern)**又称为静态工厂方法模式(Static Factory Method P原创 2021-03-17 12:22:48 · 616 阅读 · 1 评论 -
面向对象设计七大原则
面向对象设计原则前言零、概述一、单一职责原则二、开闭原则1.引入库2.读入数据三、里氏代换原则1.引入库2.读入数据四、依赖倒转原则1.引入库2.读入数据五、接口隔离原则1.引入库2.读入数据六、合成复用原则1.引入库2.读入数据七、迪米特法则1.引入库2.读入数据总结前言面向对象设计原则是设计模式的基础,每一个设计模式都符合一种或多种面向对象设计原则。它们分别为开闭原则、里氏替换原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则和合成复用原则。这 7 种设计原则是软件设计模式必须尽量遵循的原原创 2021-03-15 14:47:57 · 2164 阅读 · 0 评论