一、设计模式的分类
总体来说设计模式分为三大类:
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
二、设计模式的六大原则
1、开闭原则(Open Close Principle)
开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。
2、里氏代换原则(Liskov Substitution Principle)
里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科
3、依赖倒转原则(Dependence Inversion Principle)
这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(Interface Segregation Principle)
这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。
5、迪米特法则(最少知道原则)(Demeter Principle)
为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(Composite Reuse Principle)
原则是尽量使用合成/聚合的方式,而不是使用继承。
相关推荐
JDK 中的 23 个设计模式简介 在 Java 开发领域,设计模式是一个非常重要的概念,它能够帮助开发者写出更加灵活、可维护、可扩展的代码。JDK 中也提供了许多设计模式的实现,本文将对其中的 23 个经典设计模式进行...
### 设计模式简介 #### 一、设计模式概述 设计模式是一种被广泛接受的软件设计方法,它提供了针对常见问题的可复用解决方案。通过学习和应用设计模式,开发者能够更好地构建模块化、可复用且易于理解的软件系统。 ...
### 最简单的23种设计模式简介 #### 1. 工厂模式 工厂模式的核心思想是将产品的创建逻辑封装在工厂类中,这样当需要创建一个新的产品时,只需要修改工厂类即可,而无需修改消费者(客户端)代码。这种方式极大地...
设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述Spring源码中运用到的一些设计模式 ...
#### 设计模式简介 设计模式是一种在特定上下文中解决常见问题的方案。书中详细解释了设计模式的定义及学习设计模式的重要性。 - **什么是设计模式**:设计模式是在软件设计过程中遇到的常见问题的一种解决方案。...
游戏设计模式是游戏开发中的重要概念,它是一种在游戏编程中被反复使用的、已被证明有效的解决方案模板。这些模式可以帮助开发者高效地处理常见的游戏设计问题,提高代码的可重用性和可维护性。以下是对游戏设计模式...
为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的...Ibatis设计模式简介:主要是讲述Ibatis源码中运用到的一些设计模式(将来增加)
设计模式是软件工程中的一种最佳实践,它是在特定情境下解决常见问题的经验总结。这些模式为程序员提供了一种标准化的方法来处理复杂性,提高代码的可读性、可维护性和可扩展性。本资料主要围绕设计模式的基础知识...
##### 2.1 J2EE设计模式简介 J2EE设计模式主要关注于如何在J2EE环境中构建可伸缩、可维护的应用程序。这些模式有助于解决分布式计算环境下常见的问题,如远程调用、会话管理等。 **2.1.1 Session Façade—会话...
设计模式是软件开发中的一种重要概念,它是经过实践验证、被广泛接受的代码设计解决方案的模板,旨在提高代码的可重用性、可读性和可维护性。设计模式的运用可以使开发者之间的沟通更加高效,同时也使得软件系统更加...
为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的一些提炼...4. Ibatis设计模式简介:主要是讲述Ibatis源码中运用到的一些设计模式
### 设计模式简介 设计模式是在软件开发过程中解决常见问题的一种通用可重用的解决方案。它们代表了在特定情况下经过验证的最佳实践,并为常见的设计挑战提供了标准答案。设计模式不仅有助于提高代码的质量和可维护...