![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 78
东方雨倾
做一个积极主动的人,积极做事,主动学习。
展开
-
设计模式系列文章集合
设计模式1. 创建型模式 1.1 工厂模式 1.1.1 简单工厂模式 1.1.2 工厂方法模式&...原创 2019-11-09 23:11:33 · 142 阅读 · 0 评论 -
23种常用设计模式之解释器模式
说明解释器模式是一种行为型设计模式,在平时工作当中相对冷门,也非常的难于理解,可以参考正则表达式为一个实际的应用例子。虽然说解释器模式很难理解并且工作中应用很少,但是楼楼觉得解释器模式是一个非常强大且有趣的模式,因为该模式给我们提供了非常大的设计空间,我们可以在应用程序中定义自己的规则,然后去解析一些复杂的操作。应用场景解释器模式需要解决的是,如果一种特定类型的问题发生的频率足够高,那么可能...原创 2019-11-09 22:42:23 · 158 阅读 · 0 评论 -
23种常用设计模式之中介者模式
说明中介者(Mediator)模式属于行为型模式。定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。简单的说,A想跟B通信,需要中介者M来完成。应用场景系统中对象之间存在复杂的引用关系,系统结构混乱且难以理解。一个对象由于引用了其他很多对象并且直接和这些对象通信,导致难以复用该对象...原创 2019-11-09 22:33:37 · 187 阅读 · 0 评论 -
23种常用设计模式之享元模式
享元模式说明应用场景模式特征代码实现优缺点模式对比重要说明原创 2019-11-09 22:26:02 · 162 阅读 · 0 评论 -
23种常用设计模式之建造者模式
说明建造者模式(builder pattern)是一个创建型模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示应用场景需要生成的产品对象有复杂的内部结构,这些产品对象具备共性;隔离复杂对象的创建和使用,并使得相同的创建过程可以创建不同的产品。需要生成的对象内部属性本身相互依赖。适合于一个具有较多的零件(属性)的产品(对象)的创建过程。快速使用方法:...原创 2019-11-09 21:54:13 · 140 阅读 · 0 评论 -
23种常用设计模式之访问者模式
说明访问者模式是一种行为型模式,表示一个作用于其对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。可以对定义这么理解:有这么一个操作,它是作用于一些元素(Element)之上的,而这些元素属于某一个对象结构(ObjectStructure)。同时这个操作是在不改变各元素类的前提下,在这个前提下定义新操作是访问者模式精髓中的精髓。应用场景对象结构比较稳...原创 2019-11-09 13:36:32 · 147 阅读 · 0 评论 -
23种常用设计模式之模板方法模式
说明模板方法(Template Method)模式是一种行为型模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。应用场景多个子类有共有的方法,并且逻辑基本相同。重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现。重构时,模板方法是一个经常使用的方法,把相同的代码抽取到父类...原创 2019-11-09 10:03:08 · 297 阅读 · 0 评论 -
23种常用设计模式之策略模式
说明策略模式(Strategy Pattern)是一种行为型模式,它定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。应用场景针对同一类型问题,有多种处理方式,每一种都能独立解决问题;算法需要自由切换的场景;需要屏蔽算法规则的场景;模式特征角色说明举栗上下文角色(Context)用来操作策略的上下文环境,屏蔽高层模块(客户端)对策略,算法的直接...原创 2019-11-06 23:22:57 · 154 阅读 · 0 评论 -
23种常用设计模式之状态模式
说明状态模式(State)是一种行为型模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。应用场景行为随状态改变而改变的场景。条件、分支语句的代替者。模式特征角色说明举栗上下文环境(Context)它定义了客户程序需要的接口并维护一个具体状态角色的实例,将与状态相关的操作委托给当前的Concrete State对象来处理。Cont...原创 2019-11-06 22:40:11 · 136 阅读 · 0 评论 -
23种常用设计模式之观察者模式
说明观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己应用场景对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。...原创 2019-11-04 22:35:54 · 176 阅读 · 0 评论 -
23种常用设计模式之备忘录模式
说明备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。应用场景需要保存/恢复数据的相关状态场景。提供一个可回滚的操作。模式特征Originator(原发器):它是一个普通类,可以创建一个备忘录,并存储它的当前内部状态,也可以使用备忘录来恢复其内部状态,一般将需要保存内部状态的类设计为原发器。Memento(备...原创 2019-11-04 17:44:49 · 218 阅读 · 0 评论 -
23种常用设计模式之迭代器模式
说明迭代器模式是一种对象行为型模式,提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。应用场景当需要为聚合对象提供多种遍历方式时。当需要为遍历不同的聚合结构提供一个统一的接口时。当访问一个聚合对象的内容而无须暴露其内部细节的表示时。模式特征角色说明举栗抽象聚合(Aggregate)角色定义存储、添加、删除聚合对象以及创建迭代器对象的...原创 2019-11-03 15:34:46 · 271 阅读 · 0 评论 -
23种常用设计模式之委派模式
说明委派模式是一种常用的行为型设计模式,在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,委派者和被委派者拥有相同的方法和属性。委派模式大量使用在spring,mybatis等开源框架中,理解委派模式的实现原理可以更好理解这些框架源码。应用场景用一个对象统一处理请求,并将请求分发到具体的请求处理类上模式特征角色说明...原创 2019-10-26 21:32:07 · 423 阅读 · 0 评论 -
23种常用设计模式之命令模式
说明命令模式是一种常见的行为型模式,它将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。应用场景当系统需要将请求调用者与请求接收者解耦时,命令模式使得调用者和接收者不直接交互。当系统需要随机请求命令或经常增加或删除命令时,命令模式比较方便实现这些功能。当系统需要执行一组操作时,命令模式...原创 2019-10-26 20:12:19 · 156 阅读 · 0 评论 -
23种常用设计模式之责任链模式
祝大家1024节日快乐,致敬一线编程工作者,学习者。说明责任链模式(Chain of Responsibility Pattern)属于行为型模式,它为请求创建了一个处理者对象的链,请求将在这个对象链上被处理,责任链模式并不要求请求一定要在某一个处理者上被处理完,简单的说,就是链上的处理者都可能处理请求的一部分,该模式可以有效的解耦请求的请求者和处理者。应用场景一个请求需要一系列的处理工...原创 2019-10-24 09:19:01 · 202 阅读 · 0 评论 -
23种常用设计模式之门面模式
说明门面模式也叫外观模式,是一种结构型模式。它是一种很容易理解且易于实现的模式,它的定义是这样的:外部与一个子系统内容的通信必须通过一个统一的对象进行,门面模式提供一个高层次的接口, 使得子系统更易于使用。简单的理解就是通过门面模式,我们能很轻松的使用一个子系统,而不必关心子系统内部是怎么去实现的。应用场景为一个复杂的模块或子系统提供一个供外界访问的接口子系统相对独立–外界对子系统的访问...原创 2019-10-16 23:46:07 · 262 阅读 · 0 评论 -
23种常用设计模式之代理模式
说明代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用实现方式静态代理:由程序员创建或特定工具自动生成源代码,在对其编译。在程序员运行之前,代理类.class文件就已经被创建了JDK动态代理:是在程序运行时通过反射机制动态创建的CGLIB动态代理:CGLib采用了非常底层的字节...原创 2019-10-15 11:11:56 · 192 阅读 · 0 评论 -
23种常用设计模式之装饰器模式
说明装饰器模式(Decorator)是一种结构型模式,顾名思义,就是对已经存在的某些类进行装饰,以此来扩展一些功能。应用场景在不想更改已存在类的核心功能的情况下,想要扩展该类的功能模式特征角色说明举栗Component统一接口,也是装饰类和被装饰类的基本类型OperateSystemConcreteComponent具体实现类,也是被装饰类,他本身是个具...原创 2019-10-15 11:05:37 · 371 阅读 · 0 评论 -
23种常用设计模式之组合模式
说明组合模式(Composite Pattern),又叫部分整体模式,是一种结构型模式。它将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性应用场景部分、整体场景,如树形菜单,文件、文件夹的管理模式特征角色说明举栗抽象根节点(Component)定义系统各层次对象的共有方法和属性,可以预先定义一些默认行为和属性...原创 2019-10-14 14:05:13 · 354 阅读 · 0 评论 -
23中常用设计模式之桥接模式
说明桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。 一个事物我们可以从不同的维度去描述它,在众多维度中我们需要确定一个主维度,即其他副维度是描述主维度的。在桥接模式中,我们需要将主维度抽象化,副维度实现化,使他们能够独立的变化。 举栗说明:扩展\维度形状颜色...原创 2019-10-13 23:16:03 · 96 阅读 · 0 评论 -
23种常用设计模式之适配器模式
说明适配器模式(Adapter)是一种结构型设计模式。顾名思义,主要作用就是用来做适配用的。之所以需要适配,是因为已有的代码不能很好的完成我们的业务逻辑,但是通过简单的适配,就可以满足我们的需求,避免重复编写很多业务代码。应用场景想要复用一些现有的类,但是接口与复用环境要求不一致,比如入参不同、返回结果结构不能满足需求等。模式特征角色说明举栗Interface(目标...原创 2019-10-13 21:24:01 · 178 阅读 · 0 评论 -
23种常用设计模式之单例模式,以及它的十种实现方式
说明单例模式(Singleton)是一种常用的创建型软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。应用...原创 2019-10-11 23:52:14 · 282 阅读 · 0 评论 -
23种常用设计模式之原型模式
说明原型模式(Prototype Pattern)是一种创建型模式,用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新...原创 2019-10-10 23:39:33 · 279 阅读 · 0 评论 -
23种常用设计模式之工厂模式:抽象工厂模式
说明抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。换言之,也...原创 2019-10-10 23:15:22 · 193 阅读 · 0 评论 -
23种常用设计模式之工厂模式:工厂方法模式
说明工厂方法模式(FACTORY METHOD)是一种常用的类创建型设计模式,此模式的核心是封装类中变化的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品应用场景对于某个产品,调用者清楚地知道应该使用哪个具体工厂服务,实例化该具体工厂,生产出具体的产品来。Java Collec...原创 2019-10-10 23:12:27 · 171 阅读 · 0 评论 -
工厂模式之简单工厂模式
简单工厂模式说明简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。应用场景工厂类负责创建的对象比较少;客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;由于...原创 2019-10-10 23:06:54 · 114 阅读 · 0 评论