设计模式
文章平均质量分 89
lsd&xql
不积跬步,无以至千里。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式总结
设计模式总结设计模式分类总结设计模式指导思想设计模式的六大原则设计模式分类总结(1)创建型模式:1.Abstract Factory2.Builder3.Factory Method4.Prototype5.Singleton(2) 结构型模式1.Adapter2.Bridge3.Composite4.Decorator5.Facade6.FlyWeight7.Proxy(3)行为型模式1.Chain of Responsibility2.Command3.Interp原创 2021-10-01 16:31:22 · 219 阅读 · 0 评论 -
设计模式之解释器模式
设计模式之解释器模式概述解释器模式结构解释模式说明解释器模式使用概述解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各原创 2021-10-01 16:03:53 · 167 阅读 · 0 评论 -
设计模式之模板方法模式
设计模式之模板方法模式概述模板方法模式结构概述模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。即:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤原创 2021-09-30 01:09:12 · 161 阅读 · 0 评论 -
设计模式之命令模式
设计模式之命令模式概述命令模式的组成命令模式演进概述命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一原创 2021-09-30 00:50:14 · 335 阅读 · 0 评论 -
设计模式之桥接模式
设计模式之访问者模式概述解释说明总结概述桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。意图:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用:实现系统可能有多个角度分类,每一种角度都可能变原创 2021-09-29 00:31:35 · 290 阅读 · 0 评论 -
设计模式之访问者模式
设计模式之访问者模式概述访问者模式的结构访问者模式的使用概述在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。意图:主要将数据结构与数据操作分离。主要解决:稳定的数据结构和易变的操作耦合问题。何时使用:需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染原创 2021-09-28 23:28:26 · 145 阅读 · 0 评论 -
设计模式之装饰器模式
设计模式之中介者模式概述装饰器模式的结构装饰器模式的使用总结概述装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且原创 2021-09-25 00:01:35 · 218 阅读 · 0 评论 -
设计模式之中介者模式
设计模式之中介者模式概述中介者模式的结构中介者模式的使用概述中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要原创 2021-09-24 21:44:26 · 197 阅读 · 0 评论 -
设计模式之组合模式
设计模式之组合模式概述组合模式的结构组合模式的使用概述组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素原创 2021-09-22 23:47:56 · 227 阅读 · 0 评论 -
设计模式之外观模式
设计模式之外观模式概述享元模式结构享元模式的使用概述外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。外观就是一个大系统,里面封装了很多的子部件(或子系统),部件之间也许有复杂的逻辑关系,对于我们旁观者来说,直接使用这些子部件是非常麻烦的一件事情,所以门面就充当了一个包装类的角色,并且对外暴露一个接口,达到简化客户操作的目的,同时也是对客户端与子系统之间的解耦。意图原创 2021-09-22 23:21:00 · 178 阅读 · 0 评论 -
设计模式之享元模式
设计模式之状态模式概述适配器模式结构适配器模式的使用总结概述适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对原创 2021-09-18 00:48:49 · 188 阅读 · 0 评论 -
设计模式之适配器模式
设计模式之状态模式概述适配器模式结构适配器模式的使用总结概述适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对原创 2021-09-09 00:42:28 · 149 阅读 · 0 评论 -
设计模式之状态模式
设计模式之状态模式概述状态模式结构状态模式的使用状态机简介及Demo概述在软件开发过程中,应用程序中的部分对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态就会发生改变,从而使其行为也发生改变。如人都有高兴和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。对这种有状态的对象编程,传统的解决方案是:将这些所有可能发生的情况全都考虑到,然后使用 if-else 或 swi原创 2021-09-04 02:01:28 · 279 阅读 · 1 评论 -
设计模式之备忘录模式
设计模式之备忘录模式概述备忘录模式结构备忘录模式的使用概述备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。备忘录模式属于行为型模式。意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。何时使用:很原创 2021-09-02 00:07:41 · 194 阅读 · 0 评论 -
设计模式之原型模式
设计模式之原型模式概述原型模式结构原型模式使用概述原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。意图:用原型实例指定创建对象的种类,并且通过拷贝原创 2021-08-30 23:45:48 · 264 阅读 · 0 评论 -
设计模式之建造者模式
设计模式之建造者模式概述建造者模式结构建造者模式的演进概述建造者模式(Builder Pattern)将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。使用场景:1、多个部件或者零件,都可以装配到一个对象中,但是产生的运行结果又相同。2、产品类非常复杂,或者产品类中调用顺序不同产生了不同的作用。3、初始化一个对象特别复杂,如使用多个构造方原创 2021-08-25 00:09:51 · 176 阅读 · 0 评论 -
设计模式之迭代器模式
设计模式之迭代器模式概述迭代器模式结构迭代器模式的演进(以数组和链表为例)总结概述迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码原创 2021-08-03 21:58:43 · 163 阅读 · 0 评论 -
设计模式之代理模式
设计模式之观代理模式概述介绍静态代理的构成静态代理的演进JDK动态代理Cglib动态代理总结概述在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。介绍代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式的分类:根据原创 2021-07-30 01:02:14 · 242 阅读 · 0 评论 -
设计模式之观察者模式
设计模式之观察者模式思维导图概述介绍观察者模式的构成观察者模式的演进思维导图概述当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依原创 2021-07-21 00:06:45 · 317 阅读 · 1 评论 -
设计模式之责任链模式
设计模式之责任链模式概述介绍责任链模式的构成进阶:模拟Servlet的Filter概述顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。介绍意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这原创 2021-07-14 23:52:06 · 277 阅读 · 0 评论 -
设计模式之工厂模式
设计模式之工厂模式【简单工厂模式、工厂方法模式、抽象工厂模式】概述简单工厂模式工厂方法模式总结抽象工厂模式抽象工厂模式的优缺点总结概述工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。简单工厂模式概述:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类。优点:工厂类含有必要的判断逻辑,可原创 2021-07-11 16:41:54 · 230 阅读 · 0 评论 -
设计模式之单例模式
设计模式之单例模式八种写法概述单例模式的特点单例模式的优点单例模式的缺点单例模式的写法1.饿汉式(两种)2.懒汉式(6种)总结概述单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式的特点在Java应用中,单例模式能保证在一个JVM中,该原创 2021-07-11 12:20:47 · 230 阅读 · 1 评论 -
设计模式之策略模式
单例模式的八种写法概述饿汉式(两种写法)懒汉式(六种写法)概述单例有如下几个特点:在Java应用中,单例模式能保证在一个JVM中,该对象只有一个实例存在。构造器必须是私有的,外部类无法通过调用构造器方法创建该实例没有公开的set方法,外部类无法调用set方法创建该实例。提供一个公开的get方法获取唯一的这个实例。那单例模式有什么好处呢?某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。省去了new操作符,降低了系统内存的使用频率,减轻GC压力系统中某些类,如spring里的co原创 2021-07-07 23:43:31 · 273 阅读 · 1 评论
分享