`

设计模式分类及六大原则

阅读更多

一、设计模式的分类

总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:

 

二、设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。(eg:List 出现的地方一定可以用ArrayList替换)

3、依赖倒转原则(Dependence Inversion Principle)

这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。(程序中尽量用接口,eg:用List 而少用ArrayList)

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。(接口尽量实现原子性)

5、迪米特法则(最少知道原则)(Demeter Principle)

为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。(实体之间的相互作用尽量减少)

6、合成复用原则(Composite Reuse Principle)

原则是尽量使用合成/聚合的方式,而不是使用继承。(尽量用弱关联替代强关联)

分享到:
评论

相关推荐

    设计模式分类以及六大原则

    设计模式分类以及六大原则整理

    设计模式之六大设计原则

    设计模式(Design pattern)是一套被反复使用、多数人知知道的、经过分类编目的、代码设计经验的总结。使用设计模式的目的是为了提高代码的可重用性、保证代码的可靠性、让代码更加规范、...二 设计模式之六大设计原则

    GOF的23种设计模式,及设计模式的六大原则

    设计模式的六大原则: 1. **开闭原则**:对扩展开放,对修改关闭,意味着在保持软件原有功能的基础上,可以方便地扩展新功能。 2. **里氏代换原则**:子类必须能够替换掉它们的基类,保证软件组件的可替换性,确保...

    24种设计模式介绍与6大设计原则

    在软件工程领域,设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。24种设计模式通常分为三大类:创建型模式、...

    JAVA设计模式-原则和23种设计模式归纳总结

    本资源首先介绍了设计模式的六大原则,包括单一责任原则、开闭原则、里氏替换原则、接口隔离原则、合成复用原则和最少知道原则。然后,资源对23种设计模式进行了分类和总结,包括创建型模式、结构型模式和行为型模式...

    java设计模式经典教程

    #### 六、设计模式的六大原则 1. **开闭原则**:软件实体应该对扩展开放,对修改关闭。这意味着在不修改原有代码的情况下,可以扩展功能。 2. **里氏替换原则**:子类必须能够替换它们的基类。这确保了子类可以替代...

    尚硅谷设计模式源码笔记课件.zip

    本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,...

    设计模式C#版

    C#版的设计模式通过C#代码实例,深入浅出地展示了各种设计模式的应用场景及优缺点。 一、C#面向对象程序设计复习 C#作为一种面向对象的编程语言,其设计模式的实现往往与面向对象的原则紧密相连。复习面向对象的三...

    设计模式uml.vsdx

    2.设计模式的六大原则 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要... 3.Java的23中设计模式 从这一块开始,我们详细介绍Java中23种设计模式的概念,应用...

    设计模式 设计模式

    根据提供的标题、描述、标签及部分内容,我们可以提炼出与设计模式相关的多个知识点。下面将对这些知识点进行详细的阐述。 ### 一、设计模式的概念及其重要性 设计模式是一种在特定情境下解决软件设计问题的通用...

    23种设计模式

    【23种设计模式分类】 设计模式通常被分为三大类: 1. 创建型模式(Creational Patterns):这五种模式关注对象的创建过程,包括工厂方法模式、抽象工厂模式、单例模式、建造者模式和原型模式。它们帮助开发者在不...

    设计模式(Design Patterns).pdf

    本知识点将详细介绍设计模式的分类、设计模式的六大原则,以及Java中23种设计模式的具体应用。 一、设计模式的分类 设计模式主要分为三大类,分别是创建型模式、结构型模式和行为型模式。此外,还有并发型模式和...

    设计模式解析(英文版).pdf

    4. **可扩展性**:优秀的设计模式允许系统在未来轻松地添加新功能或进行改进,而不会对现有架构造成太大影响。 #### 三、学习设计模式的重要性 学习设计模式对于软件开发者来说至关重要。它不仅可以帮助开发者更...

    china-pub版-设计模式

    #### 一、设计模式的重要性及挑战 设计模式是软件工程领域的一个重要概念,尤其是在面向对象编程(OOP)中扮演着关键角色。正如标题“China-Pub版-设计模式”所强调的,这本书为高级读者提供了一种深入理解和应用设计...

    Android设计模式面试专题.pdf

    "Android设计模式面试专题" Android 设计模式是一种软件设计模式,旨在帮助开发者编写更加灵活、...遵循设计模式的六大原则和分类可以帮助开发者编写更加灵活、可维护、可扩展的代码,提高软件系统的质量和可维护性。

    设计模式整体框架与结构

    原则:设计模式遵循六大原则,包括开闭原则、里氏替换原则、依赖倒置原则等,这些原则指导开发者如何正确地应用设计模式。 常用模式:例如单例模式、工厂模式、观察者模式等,每种模式都有其特定的应用场景和解决的...

    Java 23种设计模式通解

    本文档总结了Java 23种设计模式的基本概念、分类、六大原则和详细实现。设计模式是软件工程的基石,它们被广泛应用于软件开发中,以提高代码的可重用性、可读性和可维护性。 设计模式的分类: * 创建型模式(5种)...

    设计模式精心总结

    六大原则是设计模式遵循的指导原则: 1. 开闭原则(Open/Closed Principle):软件实体应该是对扩展开放的,对修改关闭的。 2. 里氏代换原则(Liskov Substitution Principle):所有引用基类的地方必须能透明地...

    java设计模式---诙谐易懂版

    6. 书中还提到了六大设计原则,包括单一职责原则(Single Responsibility Principle)、里氏替换原则(Liskov Substitution Principle)、依赖倒置原则(Dependency Inversion Principle)、接口隔离原则(Interface...

    基于Java的设计模式理解与实现.pdf

    文章随后提到了设计模式的六大原则,这些原则是设计模式的指导思想,帮助开发者构建出具有良好设计质量的软件系统。 1. 开闭原则:系统应该对扩展开放,对修改关闭。这意味着在设计时,应该尽量通过抽象来实现系统...

Global site tag (gtag.js) - Google Analytics