
设计模式
文章平均质量分 95
设计模式
橘子上树丶
这个作者很懒,什么都没留下…
展开
-
行为型模式 - 备忘录模式
系列文章目录文章目录系列文章目录前言一、备忘录模式1.1 备忘录模式介绍1.2 备忘录模式结构二、实现2.1 备忘录实现三、备忘录模式总结3.1 备忘录的应用场景3.2 备忘录模式、命令模式区别3.3 备忘录模式优缺点四、参考文献3.3 备忘录模式优缺点四、参考文献前言一、备忘录模式1.1 备忘录模式介绍备忘录(Memento)模式:又称快照模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态;原创 2021-08-07 14:17:18 · 242 阅读 · 0 评论 -
行为型模式 - 解释器模式
系列文章目录文章目录系列文章目录前言一、解释器模式1.1 解释器模式介绍1.2 解释器模式结构二、实现2.1 解释器实现三、解释器模式总结3.1 解释器模式应用场景3.2 解释器模式注意细节四、参考文献四、参考文献前言一、解释器模式1.1 解释器模式介绍解释器(Interpreter)模式:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解释器来解释语言中的句子;也就是说,用编译语言的方式来分析应用中的实例,这种模式实现了文法表达式处理的接口,该接口解释一个原创 2021-08-07 14:20:10 · 277 阅读 · 0 评论 -
行为型模式 - 状态模式
系列文章目录文章目录系列文章目录前言一、状态模式1.1 状态模式介绍1.2 状态模式结构二、实现2.1 状态模式实现三、状态模式总结3.1 状态的应用场景3.2 状态模式、策略模式区别3.3 状态模式、责任链模式区别3.4 状态模式总结四、参考文献四、参考文献前言一、状态模式1.1 状态模式介绍状态(State)模式:一个对象的行为取决于内部一个 或者多个动态变化的属性,并且可以灵活地切换状态;对于有状态的对象,把复杂的 “判断逻辑”提取到不同的状态对象中,允许状态对原创 2021-08-07 14:20:44 · 207 阅读 · 0 评论 -
行为型模式 - 策略模式
系列文章目录文章目录系列文章目录前言一、策略模式1.1 策略模式介绍1.2 策略模式结构二、实现2.1 策略实现三、策略模式总结3.1 策略的应用场景3.2 策略模式、状态模式区别3.3 策略模式优缺点四、参考文献四、参考文献前言一、策略模式1.1 策略模式介绍策略(Strategy)模式:定义了一系列算法,并将每个算法封装起来,是它们可以相互替换,且算法的变化不会影响使用算法的客户;通过对算法的封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法原创 2021-08-07 14:21:31 · 223 阅读 · 0 评论 -
行为型模式 - 责任链模式
系列文章目录文章目录系列文章目录前言一、责任链模式1.1 责任链模式介绍1.2 责任链模式结构二、实现2.1 责任链实现三、责任链模式总结3.1 责任链的应用场景3.2 责任链模式、状态模式区别3.3 责任链模式总结四、参考文献前言一、责任链模式1.1 责任链模式介绍责任链(Observer)模式:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一个对象记住下一个对象的引用连成一条链,当有请求发生时,可将请求沿着这条链传递,知道有对象处理它为止原创 2021-08-07 14:21:55 · 208 阅读 · 0 评论 -
行为型模式 - 中介者模式
系列文章目录文章目录系列文章目录前言一、中介者模式1.1 中介者模式介绍1.2 中介者模式结构二、实现2.1 中介者实现三、中介者模式总结3.1 中介者的应用场景3.2 中介者模式、观察者模式区别3.3 中介者模式、外观模式区别3.4 中介者模式优缺点四、参考文献四、参考文献前言一、中介者模式1.1 中介者模式介绍中介者(Mediator)模式:用一个中介对象来封装一系列对象的交互,中介者使各对象不需要显示的相互引用,减少对象间混乱的依赖关系,从而使其耦合松散,而且可以原创 2021-08-07 14:22:38 · 215 阅读 · 0 评论 -
行为型模式 - 观察者模式
系列文章目录文章目录系列文章目录前言一、观察者模式1.1 观察者模式介绍1.2 观察者模式结构二、实现2.1 观察者实现2.2 双向观察三、观察者模式总结3.1 观察者的应用场景3.2 观察者、中介者区别四、参考文献四、参考文献前言在面向对象程序设计过程中,往往面临一个这样的问题:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤具体实现还未知或者实现与具体环境有关,我们把这些规定的流程或格式的实例定义成模板,允许使用者根据自己的需求去更新它;一原创 2021-08-07 14:23:30 · 247 阅读 · 0 评论 -
行为型模式 - 迭代器模式
系列文章目录文章目录系列文章目录前言一、迭代器模式1.1 迭代器模式介绍1.2 迭代器模式结构二、实现2.1 迭代器模式实现三、迭代器模式总结3.1 迭代器模式应用场景3.2 迭代器模式优缺点四、参考文献四、参考文献前言一、迭代器模式1.1 迭代器模式介绍迭代器(Iterator)模式:提供一个对象(迭代器)来顺序访问聚合对象(迭代数据)中的一系列数据。而不是暴露聚合对象的内部表示;1.2 迭代器模式结构[外链图片转存失败,源站可能有防盗链机制,建议将图片原创 2021-08-07 14:23:01 · 221 阅读 · 0 评论 -
行为型模式 - 访问者模式
系列文章目录文章目录系列文章目录前言一、访问者模式1.1 访问者模式介绍1.2 访问者模式结构二、实现2.1 访问者实现三、访问者模式总结3.1 访问者模式应用场景3.2 访问者模式注意细节四、参考文献3.2 访问者模式注意细节四、参考文献前言在现实生活中,有些集合对象存在多种不同的元素,且每个元素也存在多种不同的访问者和处理方式;一、访问者模式1.1 访问者模式介绍访问者(Visitor)模式:将作用于某种数据结构(比如对象)中的各元素的操作分离出来封装成独立的类原创 2021-08-06 14:36:05 · 233 阅读 · 0 评论 -
行为型模式 - 命令模式
系列文章目录文章目录系列文章目录前言一、命令模式1.1 命令模式介绍1.2 命令模式结构二、实现2.1 命令模式实现三、命令模式总结3.1 命令模式使用场景四、参考文献四、参考文献前言一、命令模式1.1 命令模式介绍命令(Adapter)模式:在软件设计中,我们经常需要像某些对象发送请求,但是并不知道请求的接受者是谁,也不知道被请求的操作是那个,我们只需要在程序运行时制定具体的请求接收者即可;命令模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,原创 2021-08-06 14:31:24 · 216 阅读 · 0 评论 -
行为型模式 - 模板方法模式
系列文章目录文章目录系列文章目录前言一、模板方法模式1.1 模板方法模式介绍1.2 模板方法模式结构二、实现2.1 模板方法实现2.2 模板方法的"钩子"方法三、模板方法模式总结3.1 模板方法的应用场景3.2 模板方法的注意细节四、参考文献四、参考文献前言在面向对象程序设计过程中,往往面临一个这样的问题:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤具体实现还未知或者实现与具体环境有关,我们把这些规定的流程或格式的实例定义成模板,允许使用者根据自己的需原创 2021-08-06 11:39:08 · 212 阅读 · 0 评论 -
结构型模式 - 代理模式
系列文章目录文章目录系列文章目录前言一、代理模式1.1 代理模式介绍1.2 代理模式结构1.3 代理分类二、实现2.1 静态代理实现2.2 JDK动态代理实现2.3 CGLIB 代理实现三、代理模式应用场景四、参考文献三、代理模式应用场景四、参考文献前言在一些情况下,一个客户不能或者不想直接访问另一个对象,这是需要找一个中介帮忙完成某项任务,这个中介就是代理对象;一、代理模式1.1 代理模式介绍由于某些原因需要给某些对象提供一个代理以控制对该对象的访问。这时,访原创 2021-08-06 11:31:52 · 207 阅读 · 0 评论 -
结构型模式 - 享元模式
系列文章目录文章目录系列文章目录前言一、享元模式1.1 享元模式介绍1.2 享元模式结构1.3 享元内部状态、外部状态二、实现2.1 享元模式实现三、享元模式总结3.1 使用场景3. 2 注意事项3.3 享元模式与原型模式区别四、参考文献前言在面向对象程序设计时,有时候会面临创建大量相同或相似的对象实例的问题。创建那么多对象将会耗费很多系统资源,它是系统性能提高的一个瓶颈。这些对象有很对相似或相同的地方,如果能把他们相同的部分提取出来共享,则能节省大量的系统资源,这就是享元模式产生的背原创 2021-08-06 11:11:45 · 302 阅读 · 0 评论 -
结构型模式 - 外观模式
系列文章目录文章目录系列文章目录前言一、外观模式1.1 外观模式介绍1.2 外观模式结构二、实现2.1 普通实现2.2 外观模式实现三、外观模式应用场景四、参考文献前言在软件设计中,当一个系统的功能越来越多,子系统越来越多,客户对系统的访问变得越来越复杂。这时如果系统内部发生变化,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观模式的目标;一、外观模式1.1 外观模式介绍外观(原创 2021-08-06 11:05:33 · 202 阅读 · 0 评论 -
结构型模式 - 组合模式
系列文章目录文章目录系列文章目录前言一、组合模式1.1 组合模式介绍1.2 组合模式结构二、实现2.1 组合模式实现三、组合模式应用场景四、参考文献前言代码地址一、组合模式1.1 组合模式介绍组合(Composite)模式又整体-部分(Part-Whole)模式,它是一种讲对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系;组合模式依据树形结构来组合对象,用来表示部分以及整体层次;组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式原创 2021-08-06 10:54:47 · 251 阅读 · 0 评论 -
结构型模式 - 装饰器模式
系列文章目录文章目录系列文章目录前言一、装饰器模式1.1 装饰器模式介绍1.2 装饰器模式结构二、实现2.1 装饰器实现2.3 装饰器模式与适配器模式区别2.4 装饰器模式与桥接模式区别三、装饰器模式应用场景四、参考文献前言代码地址一、装饰器模式1.1 装饰器模式介绍装饰器(Decorator)模式是在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能);创建一个装饰类,用来包装原有的类,并在保持类的方法签名完整的前提下,提供额外功能;1.2 装原创 2021-08-06 10:44:33 · 244 阅读 · 0 评论 -
结构型模式 - 桥接模式
系列文章目录文章目录系列文章目录前言一、桥接模式1.1 桥接模式介绍1.2 桥接模式结构二、实现2.1 普通实现2.2 桥接实现2.3 桥接模式与适配器模式区别2.4 桥接模式与装饰器模式区别三、桥接模式应用场景四、参考文献前言代码地址一、桥接模式1.1 桥接模式介绍桥接(Bridge)模式是将抽象与实现放在两个不同的类层次中,是两个层次可以独立改变;桥接模式基于类的最小设计原则,通过封装、聚合及继承等行为让不同的类承担不同的职责,他的主要特点是吧抽象(Abstractio原创 2021-08-06 10:29:05 · 266 阅读 · 0 评论 -
结构型模式 - 适配器模式
系列文章目录文章目录系列文章目录前言一、适配器模式1.1 适配器模式介绍1.2 适配器模式结构1.3 适配器分类二、实现2.1 类适配器实现2.2 对象适配器实现2.3 接口适配器实现2.4 双向适配器三、适配器模式应用场景四、参考文献前言代码地址一、适配器模式1.1 适配器模式介绍适配器(Adapter)模式又叫包装器(Wapper),是将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作;适配器模式分类:类适配器、对象适配器,接口适配器;原创 2021-08-06 10:13:36 · 211 阅读 · 0 评论 -
创建型模式 - 建造者模式
系列文章目录文章目录系列文章目录前言一、建造者模式1.1 建造者模式介绍1.2 建造者模式结构二、实现2.1 传统实现2.2 建造者模式实现2. 3 链式调用实现四、建造者模式的注意事项和细节4.1 建造者模式优缺点4.2 适用场景4.3 建造者模式、工厂模式区别五、参考文献前言代码地址一、建造者模式1.1 建造者模式介绍建造者模式又叫生成器模式,是一种对象构建模式,它可以将复杂对象的创造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象;原创 2021-07-15 18:14:35 · 337 阅读 · 2 评论 -
创建型模式 - 原型模式
系列文章目录文章目录系列文章目录前言一、原型模式1.1 原型模式介绍1.2 原型模式特点1.3 原型模式结构二、原型模式实现2.1 传统实现2.2 原型模式实现三、 浅拷贝、深拷贝3.1 浅拷贝3.2 深拷贝3.2.1 克隆实现3.2.2 序列化实现四、原型模式的注意事项和细节五、参考文献前言代码地址一、原型模式1.1 原型模式介绍原型模式是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象;原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的原创 2021-07-13 20:52:07 · 291 阅读 · 2 评论 -
创建型模式 - 工厂模式
系列文章目录文章目录系列文章目录前言一、工厂模式1.1 什么是工厂模式?1.2 为什么使用工厂模式?1.3 工厂模式的分类二、简单工厂模式(Simple Factory)三、工厂方法(Factory Method)四、抽象工厂(Abstract Factory)前言一、工厂模式1.1 什么是工厂模式?我们在创建对象时不会对客户端直接暴露创建逻辑,而是通过使用一个共同的接口根据不同的条件来指向具体想要创建的对象;1.2 为什么使用工厂模式?解耦:把对象的创建和使用的过原创 2021-07-12 21:02:14 · 301 阅读 · 0 评论 -
创建型模式 - 单例模式
一、 单例模式介绍所谓类的单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某一个类只能存在一个对象实例,并且该类值提供一个取得其对象实例的方法(静态方法);二、单例模式的创建方式饿汉式(静态常量);饿汉式(静态代码块);懒汉式(线程不安全);懒汉式(线程安全,同步方法);懒汉式(线程不安全,同步代码块);双重检查静态内部类枚举2.1 饿汉式(静态常量)步骤:构造器私有化类内部创建对象;向外暴露一个静态的公共方法;public class Si原创 2021-07-07 20:23:57 · 259 阅读 · 0 评论 -
设计模式 - 设计原则
一、设计模式的目的编写软件过程中,程序员面临着来着 耦合性、内聚性、可维护性、可扩展性、重用性、灵活性等多方面的挑战, 设计模式是为了让程序(软件),具有更好的:代码重用性(即:相同功能的代码,不用多次编写);可读性(即:编程规范性,便于其他程序员的阅读和理解);可扩展性(即:当需要增加新功能时,非常的方便,成为可维护性);可靠性(即:当我们增加新的功能后,对原来的功能没有影响);是程序呈现 高内聚 、低耦合的特性;二、设计模式设计的依据设计模式原则,其实就是程序员在编程时,应当遵原创 2021-07-06 11:36:24 · 295 阅读 · 0 评论