设计模式
文章平均质量分 62
设计模式是一种重要的软件设计方法,它可以使代码更加简洁、可读性更强、可维护性更好。本专栏将介绍几种常用的设计模式,包括创建型模式、结构型模式、行为型模式和命令型模式等。
马先生的博客0830
优质Java工程师,精通数据库,多线程,JVM,设计模式等,阅读过丰富的相关源码
展开
-
java设计模式之——状态(State)模式
GoF的23种设计模式设计模式之——状态(State)模式状态模式定义状态模式的优点状态模式的缺点状态模式的实现状态模式的使用场景设计模式之——状态(State)模式状态模式定义允许一个对象在其内部状态改变时改变它的行为状态模式的优点减少对象间的相互依赖。有利于程序的扩展。状态模式的缺点状态模式的结构与实现都较为复杂,如果使用不当会导致程序结构和代码的混乱。状态模式的使用会增加系统的类与对象的个数。状态模式的实现定义一个环境类/** * @ClassName Envir原创 2020-06-20 00:10:54 · 116 阅读 · 0 评论 -
java设计模式之——责任链(Chain of Responsibility)模式
GoF的23种设计模式设计模式之——责任链(Chain of Responsibility)模式命令模式定义责任链模式的优点责任链模式的缺点责任链模式的实现责任链模式的使用场景设计模式之——责任链(Chain of Responsibility)模式命令模式定义为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。责任链模式的优点降低了对象之间的耦合度。增强了系统的可扩展原创 2020-06-18 18:49:01 · 163 阅读 · 0 评论 -
java设计模式之——命令(Command)模式
GoF的23种设计模式设计模式之——命令(Command)模式命令模式定义命令模式的优点命令模式的缺点命令模式的实现命令模式的使用场景设计模式之——命令(Command)模式命令模式定义将一组行为抽象为对象,实现二者之间的松耦合。命令模式的优点增加或删除命令方便;降低系统的耦合度。命令模式的缺点可能产生大量具体命令类。命令模式的实现定义一个抽象命令/** * @ClassName AbstractCommend * @Description TODO * @Autho原创 2020-06-17 17:05:16 · 174 阅读 · 0 评论 -
java设计模式之——策略(Strategy)模式
GoF的23种设计模式设计模式之——策略(Strategy)模式策略模式定义策略模式的优点策略模式的缺点策略模式的实现策略模式的使用场景设计模式之——策略(Strategy)模式策略模式定义指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。策略模式的优点可以避免使用多重条件语句,去掉if-else的最佳选择;提供相同行为的不同实现,客户可以根据不同时间或空间要求选择不同的;满足开闭原则,可以在不修改原代码的情况下,灵活增加新算法。策略模式的缺点客户端必须理解所有策略算原创 2020-06-16 18:15:27 · 193 阅读 · 0 评论 -
java设计模式之——模板方法(Template Method)模式
GoF的23种设计模式设计模式之——模板方法(Template Method)模式模板方法模式定义模板方法模式的优点模板方法模式的缺点模板方法模式的实现模板方法模式的使用场景设计模式之——模板方法(Template Method)模式模板方法模式定义定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。模板方法模式的优点它封装了不变部分,扩展可变部分,便于子类继续扩展。部分方法是由子类实现的,符合开闭原则。模板方法原创 2020-06-15 20:08:17 · 161 阅读 · 0 评论 -
java设计模式之——组合(Composite)模式
GoF的23种设计模式设计模式之——组合(Composite)模式组合模式定义组合模式的优点组合模式的缺点组合模式的实现组合模式的使用场景设计模式之——组合(Composite)模式组合模式定义将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式的优点使客户端代码能够一致处理单个对象和组合对象,这简化了客户端代码;更容易在组合体内加入新的对象,客户端不会因为加入了新的对象而更改源代码,满足“开闭原则”;组合模式的缺点设计原创 2020-06-14 17:19:25 · 126 阅读 · 0 评论 -
java设计模式之——享元(Flyweight)模式
GoF的23种设计模式设计模式之——享元(Flyweight)模式享元模式定义享元模式的优点享元模式的缺点享元模式的实现享元模式的使用场景设计模式之——享元(Flyweight)模式享元模式定义它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。享元模式的优点相同对象只保存一份,降低了系统中对象的数量,降低了系统中细粒度对象给内存带来的压力。享元模式的缺点为了使对象可原创 2020-06-13 20:30:11 · 121 阅读 · 0 评论 -
java设计模式之——外观(Facade)模式
GoF的23种设计模式设计模式之——外观(Facade)模式外观模式定义外观模式的优点外观模式的缺点外观模式的实现外观模式的使用场景设计模式之——外观(Facade)模式外观模式定义通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。外观模式的优点实现了子系统与客户端之间的松耦合关系。客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并原创 2020-06-12 18:32:32 · 202 阅读 · 0 评论 -
java设计模式之——装饰(Decorator)模式
GoF的23种设计模式设计模式之——装饰(Decorator)模式装饰模式定义装饰模式的优点装饰模式的缺点装饰模式的实现装饰模式的使用场景设计模式之——装饰(Decorator)模式装饰模式定义指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的优点Decorator模式与继承关系的目的都是要扩展对象的功能,但是Decorator可以提供比继承更多的灵活性。通过使用不同的具体装饰类以及这些装饰类的排列组合,设原创 2020-06-11 18:19:14 · 187 阅读 · 0 评论 -
java设计模式之——桥接(Bridge)模式
GoF的23种设计模式设计模式之——桥接(Bridge)模式桥接模式定义桥接模式的优点桥接模式的缺点桥接模式的实现桥接模式的使用场景设计模式之——桥接(Bridge)模式桥接模式定义桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。桥接模式的优点扩展能力强。桥接模式的缺点增加了系统的理解与设计难度。桥接模式的实现定义一个接口/** * @ClassName原创 2020-06-10 13:32:18 · 127 阅读 · 0 评论 -
java设计模式之——适配器(Adapter)模式
GoF的23种设计模式设计模式之——适配器(Adapter)模式适配器模式定义适配器模式的优点适配器模式的缺点适配器模式的实现适配器模式的使用场景设计模式之——适配器(Adapter)模式适配器模式定义将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。适配器模式的优点客户端可以透明地调用目标接口。将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。复用了现存的类,不需要修改原有代码。原创 2020-06-09 13:17:49 · 314 阅读 · 0 评论 -
java设计模式之——代理(agent)模式
GoF的23种设计模式设计模式之——代理(agent)模式代理模式定义代理模式的优点代理模式的缺点代理模式的实现代理模式的使用场景设计模式之——代理(agent)模式代理模式定义为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式的优点代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用;代理模式将客户端与目标对象分离,在一定程度上降低了系统原创 2020-06-08 13:34:32 · 1434 阅读 · 0 评论 -
java设计模式之——建造者(Builder)模式
GoF的23种设计模式设计模式之——建造者(Builder)模式建造者模式定义建造者模式的优点建造者模式的缺点建造者模式的实现建造者模式的使用场景设计模式之——建造者(Builder)模式建造者模式定义指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。建造者模式的优点每个具体的建造者互相独立,便于系统的扩展;客户端无需知道产品内部组成的部分,有利于控制风险。建造者模式的缺点产品的组成部分必须相同;产品的内部如果变化复杂,就会增加很多建造者。建造者模式的原创 2020-06-07 15:43:01 · 159 阅读 · 0 评论 -
java设计模式之——抽象工厂
GoF的23种设计模式设计模式之——抽象工厂(AbstractFactory)抽象工厂模式定义抽象工厂模式的优点抽象工厂模式的缺点抽象工厂模式的实现工厂方法模式的使用场景设计模式之——抽象工厂(AbstractFactory)抽象工厂模式定义为访问类(客户端)提供创建一组相关或相互依赖对象的接口,且访问类(客户端)无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式的优点有利于产品的一致性。当一个系列的产品对象被设计成一起工作时,一个应用一次只能使用同一个系列中的对象原创 2020-06-06 17:34:01 · 172 阅读 · 0 评论 -
java设计模式之—工厂方法
GoF的23种设计模式设计模式之——工厂方法(FactoryMethod)工厂方法模式定义工厂方法模式的优点工厂方法模式的缺点工厂方法模式的实现工厂方法模式的使用场景设计模式之——工厂方法(FactoryMethod)工厂方法模式定义定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建工厂方法模式的优点用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程,对用户来说,创建过程是完全不透明的;在系统增加新的产品时只需增加产品类和对应原创 2020-06-05 13:25:47 · 87 阅读 · 0 评论 -
java设计模式之—原型模式
GoF的23种设计模式设计模式之——原型模式(Prototype)原型(Prototype)模式定义原型模式的分类(克隆)浅克隆的实现深克隆的实现使用父类clone方法的实现重写父类clone方法的实现设计模式之——原型模式(Prototype)原型(Prototype)模式定义用一个已经创建成功的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。原型模式的分类(克隆)1. 浅克隆 含义:只复制基本类型的数据,引用类型的数据只复制了引用的地址,引用的对象并没有复制,在新的对象原创 2020-06-04 13:41:41 · 100 阅读 · 0 评论 -
java设计模式之—单例模式
GoF的23种设计模式设计模式之——单例模式(Singleton)单例(Singleton)模式定义单例模式具有三个特征单例模式的结构和实现单例模式的结构如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入设计模式之——单例模式(Singleton)单例(Singleton)模式定义引用仅具有一个实例的原创 2020-05-28 14:34:06 · 96 阅读 · 0 评论