zoukankan      html  css  js  c++  java
  • 1单一职责原则

    单一职责原则

    单一职责原则的英文名称是Single Responsibility Principle,简称SRP。

    1单一职责原则的定义

    英文原话是:
    There should never be more than one reason fro a class to change。
    UnderStanding:一个类,只能有一个存在的理由;即一个类应该只有一个职责。

    一个类,应当只负责一件事,并且只能有一个原因而引起它的变化,这就是单一原则。
    就像一个人,只有专注于一件事情,才能保证任务的高度完成;
    类也能专注一个职责,提高对象的高内聚;
    唯有单一职责,才能保证对象的细粒度。
    对象的高内聚与细粒度,更加有利于对象的重用。

    单一职责原则有利于对象的稳定。
    类的职责越少,则对象之间的依赖关系就越少,耦合就越弱,收到其他对象的约束与牵制也就越少,保证了系统的可扩展性。

    案例:媒体播放器
    在媒体播放器中,可以在MediaPlayer类中定义一组与媒体播放相关的方法,如open()、play()、close()等。
    这些方法从职责角度将是内聚的,完全符合单一职责原则中"专注于做一件事情"的要求。
    但如果需求发生扩充,还需要提供上传下载媒体文件的功能,那么在设计时,就应该定义一个新类,如MediaTransfer,由它来承担这一职责,而不是为了方便,草草的将新功能加入到MediaPlayer类中。

    单一职责的优点
    • 降低类的复杂度
    • 提高类的可读性
    • 提高代码的可维护性和复用性
    • 降低因变引起的风险

    2单一职责原则的应用

    JavaEE中的分层框架模式实际上体现了单一职责原则,他将整个系统按照职责的内聚性分为不同的层,层内的模块与类具有宏观的内聚性,所关注的事情是一致的。例如,业务逻辑层主要关注系统的业务逻辑与业务流,而数据访问性只负责数据的持久化与访问。
    一用户管理为例演示单一职责。在业务逻辑中定义类UserManager,在数据访问层定义类UserDao,在实体对象层定义类User,每个类具有不同的职责和功能。

    结语:
    单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计是否优良,但"职责"和"变化原因"都是不可度量的,因项目而异,因环境而异。






    只要你不停下来,慢一点也没关系。
  • 相关阅读:
    移动端html的overflow:hidden属性失效问题
    js获取url传递参数,js获取url?号后面的参数
    zoom和transform:scale的区别
    css媒体查询来书写二倍图三倍图设置
    ajax和promise的结合使用
    react-router 嵌套路由 内层route找不到
    antd中按需加载使用react-app-rewired报错
    ts+antd报错error TS2605: JSX element type Xxx is not a constructor function for JSX elements
    在taro中跳转页面的时候执行两遍componentDidMount周期的原因和解决方法
    HDU 4602 Partition (矩阵乘法)
  • 原文地址:https://www.cnblogs.com/zyl-0110/p/14027103.html
Copyright © 2011-2022 走看看