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

    首先什么是职责,在这里,职责就是变化的原因。

    一个类应该仅有一个引起他变化的原因。

    单一职责也称之为内聚性,内聚性的定义为一个模块组成元素之间的功能相关性。简单的说,单一职责就是说一个模块组成元素之间的相关性应该是很强的,或者说他们只有一种相关性。

    1     class Rectangle
    2     {
    3         void Draw();
    4         double Area();
    5     }

    在上面的代码中,长方形有两个方法,一个是绘画,一个是计算面积;这个实际上违反了单一职责,因为,画图时涉及到界面展示的部分,而面积是数学模型的计算。

    将两个职责分开

    1     class GeometricRectangle
    2     {
    3         double Area();
    4     }
    5     class Rectangle
    6     {
    7         void Draw();
    8         GeometricRectangle GeoRect;
    9     }

    这样当你需要画画的时候可以使用Rectangle,当你需要计算面积的时候可以使用GeometricRectangle。

    使用接口解耦职责

    1     class Modem
    2     {
    3         void dail();
    4         void hangup();
    5         void send();
    6         void recv();
    7     }

    上面的Modem建立连接和数据发送两个职责,如果这两个职责不是同时发生的话,可以通过接口的方式来进行解耦。

     1     interface Connection
     2     {
     3         void dail();
     4         void hangup();
     5     }
     6 
     7     interface Data
     8     {
     9         void send();
    10         void recv();
    11     }
    12     class Modem:Connection,Data
    13     {
    14     }

    这样当我们使用某一个职责的时候,调用接口,就可以屏蔽到具体的对象。

  • 相关阅读:
    Hibernate中使用Spring Data JPA
    Spring Boot入门——全局异常处理
    Spring Boot入门——Redis
    Spring Boot入门——集成Mybatis
    Spring Boot入门——JDBCTemplate使用及其相关问题解决
    Spring Boot连接Mysql数据库问题解决
    Spring Boot入门——JPA
    Spring Boot入门——tomcat配置
    Spring Boot 配置文件
    启动图案配置
  • 原文地址:https://www.cnblogs.com/HighFun/p/2601842.html
Copyright © 2011-2022 走看看