![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
总有人想害朕
这个作者很懒,什么都没留下…
展开
-
Java GoF 23种设计模式-行为型模式-模板模式(Template Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现一、模式定义模板模式(Template Pattern)是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。二、模式动机许多业务有着相同的算法/步骤骨架,这些算法/步骤中有许多是相同的实现要求,部分步骤是要求不同的实现。此时就可以在超类/抽象类中定义算法和步骤,提供程序的方法主入口。由超类/抽象类来实现通用的步骤方法,超类/抽象类无法实现的具体步骤交给子类来实现。三、模式结构模板模式的角色原创 2020-05-30 23:17:53 · 262 阅读 · 0 评论 -
Java GoF 23种设计模式-结构型模式-组合模式(Composite Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现一、模式定义二、模式动机三、模式结构四、代码实现角色类Target:目标抽象类Calculator.javaAdaptee:适配者类CalculatorAdaptee.javaAdapter:适配器类CalculatorAdapter.javaClient:客户类Client.java...原创 2020-05-24 14:24:09 · 328 阅读 · 0 评论 -
Java GoF 23种设计模式-结构型模式-享元模式(Flyweight Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、单纯享元模式4.1、类图结构4.1、代码实现一、模式定义享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式,必须有一个工厂类对享元对象进行管理和扩展,工厂尝试重用现有的同类对象,如果未找到匹配的对象,再创建新对象。二、模式动机在创建大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,保存在内存中原创 2020-05-22 23:14:08 · 302 阅读 · 0 评论 -
Java GoF 23种设计模式-结构型模式-代理模式(Proxy Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现五、代理模式和外观、装饰者模式的不同一、模式定义代理模式(Proxy Pattern):给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英文叫做Proxy或Surrogate,它是一种对象结构型模式。通俗一点的解释就是在操作一个对象和对象中的方法时,不是直接操作这个对象,而是通过一个代理对象来操作这个目标对象。应用场景一般是需要在执行某个已经写好的方法前后添加一段逻辑,比如执行方法前打印日志,或者在执行方法之后打印方法的执行时原创 2020-05-21 00:13:43 · 242 阅读 · 0 评论 -
Java GoF 23种设计模式-结构型模式-桥接模式(Bridge Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现一、模式定义桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。二、模式动机一个类存在两个(或多个)独立变化的维度,且这两个维度都可能变化;在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。三、模式结构桥接模式包含如下角色:Abstraction:抽象类RefinedAbstraction:扩充抽象类原创 2020-05-20 21:25:34 · 285 阅读 · 0 评论 -
Java GoF 23种设计模式-结构型模式-外观模式(Facade Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现一、模式定义外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。二、模式动机降低访问复杂系统的内部子系统时的复杂度,简化客户端与内部子系统之间的接口;客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"(外观类)即可,由外观类负责与内原创 2020-05-19 00:34:12 · 219 阅读 · 0 评论 -
Java GoF 23种设计模式-结构型模式-装饰器模式(Decorator Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现一、模式定义装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名也可以称为包装器(Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。根据翻译的不同,装饰模式也有人称之为“油漆工模式”,它是一种对象结构型模式。二、模式动机一般有两种方式可以实现给一个类或对象增加行为:继承机制,使用继承机制是给现有类添加功原创 2020-05-18 00:06:29 · 235 阅读 · 0 评论 -
Java GoF 23种设计模式-结构型模式-适配器模式(Adapter Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现五、适配器模式与装饰者模式比较一、模式定义适配器模式(Adapter Pattern) 是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。适配器模式将一个接口转换成客用户所期待的样子,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式有对象适配器和类适配器两种实现;由于java不支持多继承,本文仅对对象适配器实现进行说明二、模式动机通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,原创 2020-05-17 22:25:59 · 238 阅读 · 0 评论 -
Java GoF 23种设计模式-创建型模式-原型模式(Prototype Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现五、优缺点5.1 原型模式优点5.2 原型模式缺点一、模式定义原型模式(Prototype Pattern)是一种创建型设计模式,使你能够复制已有对象, 而又无需使代码依赖它们所属的类。原型模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用原型模式。二、模式动机在我们应用程序可能有某些对象的结构比较复杂,但是我们又需要频繁的使用它们,如果这个时候我们来不断的新建这个对象势必会大大损耗系统内存的,这个时候原创 2020-05-16 23:10:42 · 213 阅读 · 0 评论 -
Java GoF 23种设计模式-创建型模式-建造者模式(Builder Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现一、模式定义建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式又可以称为生成器模式。建造者模式是一种创建型设计模式, 它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是原创 2020-05-16 21:18:03 · 336 阅读 · 0 评论 -
Java GoF 23种设计模式-创建型模式-抽象工厂模式(Abstract Factory Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现4.1 Sender产品及其实现4.2 Logger产品及其实现4.3 工厂类及其实现4.4 测试及运行结果一、模式定义抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于创建型模式。抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式与工厂方法模式最大的区别在于:工厂方法模式:一个抽象产品类,可原创 2020-05-16 17:37:59 · 269 阅读 · 0 评论 -
Java GoF 23种设计模式-创建型模式-工厂方法模式(Factory Method Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现五、缺点一、模式定义工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。工厂方法模式原创 2020-05-16 16:37:52 · 261 阅读 · 0 评论 -
Java 设计模式-创建型模式-简单工厂模式(Simple Factory Pattern)
文章目录一、模式定义二、模式动机三、模式结构四、代码实现1、普通简单工厂2、多方法简单工厂3、静态方法简单工厂五、缺点简单工厂模式(Simple Factory Pattern)不属于 GoF 的 23 种经典设计模式的范围,简单工厂一般分为:普通简单工厂、多方法简单工厂、静态方法简单工厂。一、模式定义简单工厂模式(Simple Factory Pattern)又称为静态工厂方法(Static Factory Method)模式,它属于创建型模式。提供创建对象的最佳方式。工厂模式,顾名思义,用来原创 2020-05-16 15:08:26 · 318 阅读 · 0 评论 -
Java GoF 23种设计模式-创建型模式-单例模式(Singleton Pattern)
文章目录一、模式动机二、模式定义三、模式结构四、代码实现一、模式动机对于系统中的某些类来说,只有一个实例很重要,例如在计算机系统中,多线程中的线程池、打印机的后台处理服务、应用程序的日志对象、数据库的连接池、网站的计数器、ID(序号)生成器等常常被设计成单例。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在,这样的模式有几个好处:某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。省去了new操作符,降低了系统内存的使用频率,减轻GC压力。有些类如ID(序号)原创 2020-05-16 12:23:17 · 223 阅读 · 0 评论