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     }

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

  • 相关阅读:
    09-JS的事件流的概念(重点)
    08-jQuery的位置信息
    07-小米导航案例
    python-selector模块
    python--day9--异步IO、数据库、队列、缓存
    python--select多路复用socket
    python--gevent高并发socket
    python--协程
    python--进程锁、进程池
    python--多进程
  • 原文地址:https://www.cnblogs.com/HighFun/p/2601842.html
Copyright © 2011-2022 走看看