一、设计模式分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
行为型模式分三类:
父类与子类:(1)策略模式、(2)模板方法模式
两个类之间:(3)观察者模式、(4)迭代子模式、(5)责任链模式、(6)命令模式
类的状态:(7)备忘录模式、(8)状态模式
通过中间类:(9)访问者模式、(10)中介者模式、(11)解释器模式
其实还有两类:并发型模式和线程池模式
二、设计模式的六大原则
1.开闭原则(Open Close Principle)
开闭原则就是说对扩展开放,对修改关闭。在程序需要进行扩展的时候,不能去修改原有代码,实现一个热插拔的效果。
所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会体会到这点
2.里氏代换原则(Liskov Substitution Principle)LSP
面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。
LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。
而基类与子类的继承关系就是抽象化的具体体现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
3.依赖倒转原则(Dependence Inversion Principle)
这个是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
4.接口隔离原则(Interface Segregation Principle)
这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这个我们看出,其实设计模式就是一个软件的设计思想,
从大型软件架构出发,为了升级和维护方便,要降低依赖,降低耦合
5.迪米特法则(最少知道原则)(Demeter Principle)
为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立
6.合成复用原则(Composite Reuse Principle)
原则是尽量使用合成、聚合的方式,而不是使用继承。
三、Java的23种设计模式
1.工厂方法模式(Factory Method)
2.单例模式(Singleton)
3.建造者模式(Builder)
4.原型模式(Prototype)
5.适配器模式(Adapter)
6.装饰模式(Decorator)
7.代理模式(Proxy)
8.外观模式(Facade)
9.桥接模式(Bridge)
10.组合模式(Composite)
11.享元模式(Flyweight)
12.策略模式(strategy)
13.模板方法模式(Template Method)
14.观察者模式(Observer)
15.迭代子模式(Iterator)
16.责任链模式(Chain of Responsibility)
17.命令模式(Command)
18.备忘录模式(Memento)
19.状态模式(State)
20.访问者模式(Visitor)
22.中介者模式(Mediator)
23.解释器模式(Interpreter)
(细心的你 会发现我的文章只有22种 回顾一下工厂方法模式 “抽象了解一下!")
对上述设计模式也进行了总结和梳理——总结23种设计模式系统梳理
此文章大部分是博主自己手写,现已整理完毕,看完感觉可以,留个小心心。
作者:Mr.Ph
博客:https://blog.csdn.net/panzihao_beijing(转载请说明出处)
---------------------
作者:panzihao_beijing
来源:CSDN
原文:https://blog.csdn.net/panzihao_beijing/article/details/79710052
版权声明:本文为博主原创文章,转载请附上博文链接!
相关推荐
C#23种设计模式样例代码和UML图等 创建型模式(抽象工厂模式、工厂方法模式、单例模式、建造者模式、原型模式); 行为型模式(策略模式、 迭代器模式、原型模式、职责链模式、 模板方法、 命令模式、 解释器模式、 ...
【源码笔记】用Java代码样例实现23种常见设计模式
【源码笔记】用Java代码样例实现23种常见设计模式_pgj
该项目提供Java语言的23种设计模式深入学习和实践,包含59个文件,涵盖54个Java源文件、1个Git忽略文件、1个Markdown文件、1个XML文件、1个文本文件、1个YAML文件,并附有详尽的demo样例源码分析,旨在帮助开发者...
《设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版》是一份深入探讨软件工程中经典设计模式的重要资料,涵盖了面向对象编程中的核心设计原则和实践。这份资源主要关注GoF(Gang of Four,即《设计模式:可...
java23种设计模式+23个实例demo: 关于代码的几点说明: 1. 代码为根据个人对Design Pattern的学习理解写出, 2. 每个Pattern均是一个目录,其目录名即是Pattern的名字, 所有代码用JDeveloper 9i 和JBuilder 6.0编写...
软件设计模式大作业样例 在本大作业中,我们将设计一个公司经费申请系统,使用模板方法模式、职责链模式和观察者模式来解决实际问题。下面是详细的设计过程和实现代码。 应用场景 公司经费申请系统是一个典型的...
设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或更多)设计场景和解决策略(实际上这也是很重要的一笔财富),实际接受的是一种思想的熏陶和洗礼,等这种思想...
本资源“25种设计模式样例.zip”包含的是.NET平台下的25个经典设计模式的实例代码,每个模式都有详细的注释,非常适合初学者和有经验的开发者用来学习和参考。 设计模式可以分为三大类:创建型、结构型和行为型。...
本压缩包包含的是23种经典设计模式的Java实现源代码,下面我们将详细探讨其中的两种主要模式:单例模式和工厂模式。 1. 单例模式(Singleton Pattern): 单例模式是一种确保一个类只有一个实例,并提供全局访问点...
这个压缩包“23种设计模式的代码版(Java)”包含了Java实现的23个经典设计模式,每个模式都有详细的代码示例。以下是这23个设计模式的概述: 1. **单例模式**:保证一个类只有一个实例,并提供一个全局访问点。防止...
设计模式的示例代码,非常简洁了,直接可以运行
本项目用来展示23种设计模式的具体实现代码,帮助更好理解设计模式的应用本项目用来展示23种设计模式的具体实现代码,帮助更好理解设计模式的应用本项目用来展示23种设计模式的具体实现代码,帮助更好理解设计模式的...
《C# 23种设计模式》是一本深入解析C#编程中常用设计模式的权威指南,对于想要提升代码质量、提高软件可维护性的开发者来说,是不可或缺的参考资料。书中详细介绍了23种经典的设计模式,这些模式是软件工程实践中...
里面包含了23中设计模式源代码,其中包括工厂模式(Factory)、单例(Singleton)、观察者...这些代码对于初学者看起来稍微复杂一些,我还有一个简易版的代码,标题为(23种设计模式的java源代码----容易理解的源代码)
。同时,每种模式都有相应的笔记。.zip
《23种设计模式解析附实现源码(2nd Edition)》是一本深度解析设计模式的经典著作,书中不仅详尽地介绍了GoF所提出的23种设计模式,还提供了具体的实现代码,帮助读者更好地理解和掌握这些模式的应用。设计模式作为一...
设计模式是软件开发中一种广泛采用的实践,它代表了在特定上下文中解决常见问题的通用解决方案。设计模式并非具体的代码或库,而是对最佳实践的描述,它们是经过时间验证、可重用的代码设计模式,旨在提高代码的...
花了一个礼拜时间,仔细研究了每一种设计模式,参考了一些网上的实例和板桥里人的设计模式(板桥里人的很多代码都不能运行),精心设计的用例,这些用例都是在有理解的基础之上写的,初学者几天可以搞定,好过你去看那些厚厚...
设计模式则是软件工程中的一种最佳实践,它为解决常见问题提供了可重用的解决方案。在Web开发,尤其是HTML5的环境中,理解并应用设计模式可以帮助开发者创建更高效、可维护的代码。 HTML5的新特性包括: 1. **离线...