设计模式总结_用设计模式改造

设计模式总结_用设计模式改造设计模式总结

大家好,又见面了,我是你们的朋友全栈君。

本文转载自

http://www.mynawang.com/

相关代码可访问

https://github.com/mynawang/Design-Pattern-Learning

设计模式总结_用设计模式改造

 

什么是设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
 

设计模式的6个原则

1、迪米特法原则(Demeter Principle)
迪米特法原则又称为最少知道原则,也就是说,一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。也就是我们平常所说的”高内聚,低耦合”。
2、单一职责原则(Single Responsibility Principle)
就一个类而言,应该仅有一个引起它变化的原因。简而言之,就是功能要单一,一个类只负责一项职责。
3、接口隔离原则(Interface Segregation Principle)
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
4、里氏替换原则(Liskov Substitution Principle)
所有引用基类(父类)的地方必须能透明地使用其子类的对象。即继承于派生的规则。
5、依赖倒置原则(Dependence Inversion Principle)
高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
6、开闭原则(Open-Closed Principle)
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
 

设计模式分类

创建型模式
1、抽象工厂模式(Abstract Factory Pattern)
提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类。
2、工厂方法模式(Factory Method Pattern)
定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
3、建造者模式(Builder Pattern)
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
4、单例模式(Singleton Pattern)
确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
5、原型模式(Prototype Pattern)
用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
结构型模式
1、适配器模式(Adapter Pattern)
是作为两个不兼容的接口之间的桥梁。它结合了两个独立接口的功能。
2、装饰器模式(Decorator Pattern)
允许向一个现有的对象添加新的功能,同时又不改变其结构。它是作为现有的类的一个包装。
3、代理模式(Proxy Pattern)
一个类代表另一个类的功能。创建具有现有对象的对象,以便向外界提供功能接口。
4、桥接模式(Bridge Pattern)
用于把抽象化与实现化解耦,使得二者可以独立变化。通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
5、外观模式(Facade Pattern)
隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。向现有的系统添加一个接口,来隐藏系统的复杂性。
6、享元模式(Flyweight Pattern)
主要用于减少创建对象的数量,以减少内存占用和提高性能。通过共享技术实现相同或相似对象的重用。
7、组合模式(Composite Pattern)
又叫部分-整体模式,是用于把一组相似的对象当作一个单一的对象。将对象组织到树结构中,可以用来描述整体与部分的关系。
行为型模式
1、模板方法模式(Template Method Pattern)
一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。
2、备忘录模式(Memento Pattern)
保存一个对象的某个状态,以便在适当的时候恢复对象。
3、迭代子模式(Iterator Pattern)
用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。
4、访问者模式(Visitor Pattern)
表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
5、观察者模式(Observer Pattern)
定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。
6、解释器模式(Interpreter Pattern)
定义语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”意思是使用规定格式和语法的代码。
7、中介者模式(Mediator Pattern)
用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式。
8、责任链模式(Chain of Responsibility Pattern)
避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
9、策略模式(Strategy Pattern)
定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
10、命令模式(Command Pattern)
将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。
11、状态模式(State Pattern)
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。

 
 

 
设计模式总结_用设计模式改造
博主自白

    本人20有余,天资愚钝,深信勤能补拙。酷爱编程,爱钻研,广交码友,耕于三线,日以继夜而使飞燕之身蜕变为大腹便便。

有志之士点击链接加入技术交流群【专注的程序猿】282087535

    文章如果对你有所帮助是我的荣幸,不妥之处希望指正,转帖请注明本文出自钰火的小栈(http://www.mynawang.com/),请尊重他人的辛勤劳动成果,谢谢!

转载于:https://www.cnblogs.com/Codenewbie/p/6192599.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106749.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月22日 下午12:20
下一篇 2022年4月22日 下午12:20


相关推荐

  • C++23种设计模式(14)-模板方法模式

    C++23种设计模式(14)-模板方法模式最近有个招聘会 可以带上简历去应聘了 但是 其中有一家公司不接受简历 而是给应聘者发了一张简历表 上面有基本信息 教育背景 工作经历等栏 让应聘者按照要求填写完整 每个人拿到这份表格后 就开始填写 如果用程序实现这个过程 该如何做呢 一种方案就是用模板方法模式 定义一个操作中的算法的骨架 而将一些步骤延迟到子类中 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 include iostream include string include string iostream

    2026年3月17日
    2
  • 设计模式之组合(compose)模式

    树形结构在软件中随处可见,比如操作系统中的目录结构,公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题。组合模式通过一种巧妙的设计方案来使得用户可以一致性地处理整个树形

    2021年12月28日
    38
  • 23种常用设计模式的UML类图

    23种常用设计模式的UML类图23种常用设计模式的UML类图本文UML类图参考《HeadFirst设计模式》(源码)与《设计模式:可复用面向对象软件的基础》(源码)两书中介绍的设计模式与UML图。整理常用设计模式的类图,一

    2022年6月30日
    31
  • MVC设计模式和三层结构(适合初学者)

    MVC设计模式和三层结构(适合初学者)题外话:我们经常把MVC模式和三层架构联系在一起,一旦让你谈谈MVC设计模式,不可避免的总是会说到三层架构,这对于一些高手和大佬来说并没有什么问题,但是对于一些新手,想要学习MVC设计模式的小白来说,有时候就不太友好了。大多人(包括我)刚开始学的时候,大部分都是看大佬们的博客学习,但是正是如此,被大佬们的博客搞得头晕,很容易将MVC设计模式和三层架构搞混,或者以为是同一个东西,…

    2022年6月25日
    31
  • 设计模式之美(8)-结构型-适配器模式

    设计模式之美(8)-结构型-适配器模式适配器模式的原理与实现适配器模式 AdapterDesig 这个模式就是用来做适配的 它将不兼容的接口转换为可兼容的接口 让原本由于接口不兼容而不能一起工作的类可以一起工作 适配器模式有两种实现方式 类适配器和对象适配器 类适配器使用继承关系来实现 对象适配器使用组合关系来实现 类适配器 基于继承 publicinterf voidf1 voidf2 voidfc publicclassA

    2026年3月20日
    2
  • 设计模式、框架、架构、平台的区别「建议收藏」

    设计模式、框架、架构、平台的区别「建议收藏」区分什么是架构、框架、模式和平台,一直都感觉这几个词过于抽象和模糊,今天大家来说说到底什么是架构、框架、模式和平台? 收集了的一些来自网上各自的定义和区分如下: 设计模式 1、设计模式为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单。那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类、对象和接口之间的关系,是前人总结的经验

    2022年10月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号