一、设计模式分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
行为型模式分三类:
父类与子类:(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种设计模式完整代码”是一份宝贵的资源,它包含了所有23种经典设计模式的实现示例。这份资料能够帮助开发者深入理解每种设计模式的概念、应用场景以及它们之间的差异。 设计模式是经过时间...
设计模式精解- GoF 23种设计模式解析附C++实现源码 懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要。反之好像也可能成立。道可道,非常道。道不远人,设计模式亦然如此。 一直想把自己的学习经验以及在...
【源码笔记】用Java代码样例实现23种常见设计模式
在给定的代码中,我们可以看到23种设计模式中的几种以Java代码的形式展示。以下是对这些模式的详细解释: 1. 工厂方法(Factory Method): 工厂方法模式是一种创建型设计模式,它提供了一个创建对象的接口,但让...
java23种设计模式+23个实例demo: 关于代码的几点说明: 1. 代码为根据个人对Design Pattern的学习理解写出, 2. 每个Pattern均是一个目录,其目录名即是Pattern的名字, 所有代码用JDeveloper 9i 和JBuilder 6.0编写...
设计模式精解-GoF 23 种设计模式解析附 C++实现源码高清PDF扫描版本
设计模式经典样例笔记与代码Swift.zip 基础 [x] 类间的关系 [x] 设计原则 创建型 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定...
设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或更多)设计场景和解决策略(实际上这也是很重要的一笔财富),实际接受的是一种思想的熏陶和洗礼,等这种思想...
本资源“25种设计模式样例.zip”包含的是.NET平台下的25个经典设计模式的实例代码,每个模式都有详细的注释,非常适合初学者和有经验的开发者用来学习和参考。 设计模式可以分为三大类:创建型、结构型和行为型。...
这个压缩包“23种设计模式的代码版(Java)”包含了Java实现的23个经典设计模式,每个模式都有详细的代码示例。以下是这23个设计模式的概述: 1. **单例模式**:保证一个类只有一个实例,并提供一个全局访问点。防止...
设计模式的示例代码,非常简洁了,直接可以运行
本压缩包“设计模式学习样例及代码”包含的是对二十三种主要设计模式的代码实现和示例,旨在帮助学习者更好地理解和运用这些模式。 1. **单例模式**:保证一个类只有一个实例,并提供全局访问点。在多线程环境下,...
《23种设计模式彩图-PDF高清版》是一本专注于设计模式的教材,它不仅仅提供文字性的描述,而是结合了色彩丰富的UML(统一建模语言)图示,帮助读者以更直观的方式理解和记忆这23种设计模式。设计模式是软件工程中...
《C# 23种设计模式》是一本深入解析C#编程中常用设计模式的权威指南,对于想要提升代码质量、提高软件可维护性的开发者来说,是不可或缺的参考资料。书中详细介绍了23种经典的设计模式,这些模式是软件工程实践中...
GoF 23种设计模式解析附源代码示例,一直想把自己的学习经验以及在项目中的应用经历拿出来和大家共享,却总是下不了这个决心:GoF的23种模式研读、总结也总需要些时日,然而时间对于我来说总是不可预计的。...
里面包含了23中设计模式源代码,其中包括工厂模式(Factory)、单例(Singleton)、观察者...这些代码对于初学者看起来稍微复杂一些,我还有一个简易版的代码,标题为(23种设计模式的java源代码----容易理解的源代码)
。同时,每种模式都有相应的笔记。.zip
设计模式是软件开发中一种广泛采用的实践,它代表了在特定上下文中解决常见问题的通用解决方案。设计模式并非具体的代码或库,而是对最佳实践的描述,它们是经过时间验证、可重用的代码设计模式,旨在提高代码的...
花了一个礼拜时间,仔细研究了每一种设计模式,参考了一些网上的实例和板桥里人的设计模式(板桥里人的很多代码都不能运行),精心设计的用例,这些用例都是在有理解的基础之上写的,初学者几天可以搞定,好过你去看那些厚厚...