zoukankan      html  css  js  c++  java
  • 梳理并分解继承体系

    1.某个继承体系同时承担两项责任:建立两个继承体系,并通过委托关系让其中一个可以调用另一个。

    2.动机:混乱的继承体系是一个严重的问题,因为它会导致重复代码,还会是修改代码变得困难,因为特定问题的解决策略被分散到了整个体系。

    3.做法:A.首先识别出继承体系所承担的不同责任,然后建立一个二维表格,并以坐标轴标出不同的任务;

        B.判断哪一项责任更重要些,并准备将它留在当前的继承体系中。准备将另一责任移到另一个继承体系中;

        C.使用EXTRACT CLASS从当前的超类中提炼出一个新类,用以表示重要性稍低的责任, 并在原超类中添加一个实例变量,用以保存新类的实例;

        D.对应于原继承体系中的每个子类,创建上述新类的一个子类。在原继承体系的子类中,将前一步所添加的实例变量初始化为新建子类的实例;

        E.针对原继承体系中的每个子类,使用MOVE METHOD将其中的行为搬移到与之对应的新建子类中;

        F.当原继承体系中的某个子类不再有任何代码时,就将它去除;

        G.重复以上步骤,直到原有继承体系中的所有子类都被处理过为止。观察新继承体系,看是否有可能对它实施其他重构手法,如Pull Up Method或Pull Up Field

  • 相关阅读:
    Django Rest framework 之 节流
    Django Rest framework 之 权限
    Django Rest framework 之 认证
    url参数和字典的相互转化
    Ajax之跨域请求
    爬虫之爬取B站关键字
    Django之ModelForm组件
    C语言逻辑运算符顺序
    2.4.4 N-S流程图表示法
    2.4.3 三种基本结构和改进的流程图
  • 原文地址:https://www.cnblogs.com/zijinyouyou/p/6539386.html
Copyright © 2011-2022 走看看