`
jieyuan_cg
  • 浏览: 37584 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式原则详解

阅读更多

设计模式遵循的基本原则

  1. 开闭原则OCP
  2. 里氏代换原则LSP
  3. 依赖倒转原则DIP
  4. 接口隔离原则ISP
  5. 合成/聚合复用原则CARP
  6. 迪米特法则LoD

1、开闭原则OCP:对扩展开放,对修改关闭

    解决问题的关键在于抽象化。在预见可能变化的前提下,给出一个一劳永逸、不再更改的抽象设计,此设计允许有无穷无尽的行为在实现层被实现。

    优点:

  1. 通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,是变化中的软件系统有一定的适应性和灵活
  2. 已有的软件模块,特别是最重要的抽象层模块不能再修改,这就是变化中的软件系统有一定的稳定性和延续性

2、里氏代换原则LSP :基类可出现,则子类可出现,反之不成立

    里氏代换原则是考量模型中对象之间是否符合继承复用的核心原则

3、依赖倒转原则DIP :依赖于抽象,不要依赖于具体

    目标:解耦,不让具体实现层的变化造成更多的影响
    优点:逻辑与实现的充分解耦
    缺点:不易实现,有时趋于繁琐——把握稳定性

4、接口隔离原则ISP :多个专门的接口好过一个总接口

    整洁——仅从美学角度分析
    系统的可维护性得到增强。向客户提供的public接口是一种承诺,一旦提供就很难收回。做为提供方,没人愿意多做承诺。而且一旦服务发生变化,很容易定位受影响的客户端和不受影响的客户端。

5、合成/聚合复用原则CARP:能用合成/聚合就不要用继承

    继承的优点

         新的实现容易,超类功能可以通过集成自动进入子类
         修改或扩展继承而来的实现较为容易

    继承的缺点
         继承会破坏封装,因为继承会将超类的实现细节暴露给子类——白箱复用
         如果超类的实现发生改变,则子类也不得不改变——牛鞭效应
         从超类继承而来的实现是静态的,无法在运行时间内改变,缺乏灵活性

6、迪米特法则LoD:不要与陌生人说话

    别称:LKP(Least Knowledge Principle),最少知识原则——一个对象应当对其他对象有尽可能少的了解,也应当尽量少的被其他对象了解

    狭义迪米特:如果两个类不必直接通信则不建立通信,通过第三方转发

      广义迪米特:要注意信息的隐藏

 

Spring3的源代码,大量运用了设计模式,而且非常精巧。不得不佩服。DIP,ISP得到了充分地体现这样的代码,看起来真得是非常舒服……

分享到:
评论

相关推荐

    设计模式六大原则详解 经典

    设计模式是软件开发中的一种最佳实践,它基于一套核心原则来指导我们编写可维护、可扩展的代码。在这篇文章中,我们将深入探讨设计模式的六大原则,这些原则是理解并有效应用设计模式的基础。 首先,我们要了解“开...

    设计模式与设计原则.pdf

    本文件《设计模式与设计原则.pdf》中,将详细地探讨设计模式以及与之相关的六大设计原则。 首先,设计模式主要分为三类: 1. 创建型模式(Creational patterns):这些模式提供了一种在创建对象的同时隐藏创建逻辑...

    设计模式之六大原则详解,Markdown笔记

    详细介绍了设计模式六大原则,配有示例代码和图片,有开闭原则,单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则等等。

    设计模式六大原则 设计模式详解

    在本文中,我们将深入探讨设计模式的六大原则,这些原则是指导我们编写高质量、可维护和可扩展代码的关键。首先,我们将关注其中的一个重要原则——单一职责原则(Single Responsibility Principle,SRP)。 单一...

    《Java设计模式》详解

    内容包括统一建模语言基础知识、面向对象设计原则、设计模式概述、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、...

    java设计模式详解合集

    Java设计模式详解合集是一份宝贵的资源,包含了丰富的面向对象设计原则和多种设计模式的深入讲解。这份资料旨在帮助开发者提升软件设计能力,遵循良好的编程实践,提高代码的可读性、可维护性和复用性。以下是其中...

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

    24种设计模式介绍与6大设计原则希望这本书的阅读者具备最基本的代码编写能力,您是一个初级的 coder,可以从中领会到怎么设计 一段优秀的代码;您是一个高级程序员,可以从中全面了解到设计模式以及 Java 的边角技术...

    设计模式PPT---25种设计模式详解

    这份名为“设计模式PPT——25种设计模式详解”的资料,显然是一个深入探讨设计模式的教程,它通过PDF格式对25种主要的设计模式进行了详尽的阐述。 首先,我们要理解设计模式的基本概念。设计模式不是代码,而是一种...

    OGRE设计模式详解

    《OGRE设计模式详解》是一本深度探讨游戏引擎OGRE设计模式的专业书籍,它为开发者提供了深入了解和掌握OGRE框架的宝贵资源。OGRE(Object-Oriented Graphics Rendering Engine)是一个开源的3D渲染引擎,广泛应用于...

    设计模式六大原则

    ### 设计模式六大原则详解 #### 一、开闭原则(Open-Closed Principle) **含义:** 开闭原则强调的是“对扩展开放,对修改关闭”。这意味着系统的设计应该是灵活的,能够轻松地添加新的功能而不需要修改现有代码...

    JAVA常用设计模式详解大全.pdf

    ### JAVA常用设计模式详解 #### 一、设计模式概述 设计模式是在软件设计过程中针对特定问题的典型解决方案。这些模式经过长时间的实践检验,被证明是解决特定问题的有效方法。设计模式可以分为三大类:创建型模式...

    微服务设计模式大全详解

    微服务设计模式大全详解涵盖了微服务架构中的一些关键设计策略,旨在提升系统的可伸缩性、灵活性、故障隔离和可见性。以下是这些模式的详细解释: 1. **分解模式**: - **按业务能力分解**:遵循单一职责原则,将...

    java设计模式代码详解

    这些设计模式不仅提升了代码的可读性和可维护性,还能帮助开发人员遵循良好的软件设计原则,如单一职责原则、开闭原则、依赖倒置原则等。通过学习和熟练运用这些模式,开发者能够编写出更加优雅、高效和易于扩展的...

    设计模式 设计模式 思想 模式 原则

    ### 设计模式与GRASP原则详解 #### 一、设计模式概述 设计模式是指在软件设计过程中,针对一些常见问题的解决方案。它并不是一个具体的代码片段或者类库,而是一种解决问题的思想方法。设计模式能够帮助开发者更好...

    GOF设计模式详解

    **GOF设计模式详解** GOF设计模式,全称Gang of Four设计模式,是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位著名计算机科学家合著的《设计模式:可复用面向对象软件的基础》一书中的核心内容...

    Java设计模式-23种设计模式详解

    Java设计模式详解 Java设计模式是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 设计模式的六大原则...

    java设计模式详解

    Java设计模式详解 设计模式是软件开发中的重要概念,它是一种在特定场景下解决常见问题的标准解决方案,旨在提高代码的可重用性、可读性和可维护性。设计模式是面向对象编程领域的宝贵经验总结,它将过去成功的编程...

    根据《JAVA与设计模式》整理的笔记及示例代码

    设计模式是对在特定情境下软件设计问题的解决方案的一种描述,它描述了在某些特定情况下,如何在不违反面向对象原则的情况下重用代码,提高代码的可读性和可维护性。设计模式分为三大类:创建型模式(Creational ...

    Java设计模式详解

    Java设计模式是面向对象编程中的一种重要思想,它总结了在解决特定问题时可以复用的通用解决方案。设计模式提供了一种标准化的方法来组织代码,提高软件的可读性、可维护性和可扩展性。本文将深入探讨Java设计模式的...

    设计模式详解+源代码

    1. **面向对象设计原则**:这是所有设计模式的基础,包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)和接口隔离原则(ISP)。理解这些原则有助于写出更灵活、可维护的代码。 2. **建造...

Global site tag (gtag.js) - Google Analytics