zoukankan      html  css  js  c++  java
  • 大话设计模式读书笔记(三) 单一职责原则和开放-封闭原则和依赖倒转原则

    大多数时候,一件产品简单一些,职责单一一些。或许是更好的选择

    单一职责原则:

    就一个类而言,应该有且仅有一个引起它变化的原因。


    如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。

    如果你能想到多于一个的动机去改变这一个类,那么这个类就有多于一个的职责,就应该考虑类的职责分离。

    开放封闭原则:

    是说软件实体(类、模块、函数等等)应该可以扩展,但不可以修改。对于扩展是开放的,对于更改是封闭的。关键是抽象,将一个功能的通用部分和实现细节部分清晰的分离开来。

    无论模块是多么封闭,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对他设计的模块应该对那种变化封闭进行选择。他必须猜测出最有可能发生的变化种类,然后构造抽象来隔离这些变化。

    开放封闭原则是面向对象设计的核心所在,遵循这个原则可以带来面向对象技术所声称的巨大好处。也就是可维护,可扩展,可复用,灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分作出抽象。然而,对于应用程序的每一个部分都刻意地进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。

    依赖倒转原则:

    1、高层模块不应该依赖低层模块。两个都应该依赖抽象。
    2、抽象不应该依赖细节,细节应该依赖抽象。

    依赖倒转原则其实是面向对象设计的标志,用那种语言来编写程序不重要,如果编写时考虑的是如何针对抽象变成而不是针对细节变成,即程序所有的依赖关系都终止于抽象类或接口,那就是面向对象的设计,反之则是面向过程的设计。




  • 相关阅读:
    perl学习笔记三
    linux下编译C/C++
    redis学习笔记——数据类型
    redis学习笔记二
    perl学习笔记二
    hadoop实战 -- 网站日志KPI指标分析
    Java反射与动态代理
    使用maven来管理您的java项目
    使用MapReduce实现一些经典的案例
    编译本地64位版本的hadoop-2.6.0
  • 原文地址:https://www.cnblogs.com/xsyfl/p/6842519.html
Copyright © 2011-2022 走看看