zoukankan      html  css  js  c++  java
  • 重构第20天 提取子类(Extact SubClass)

    理解:提取子类就是把基类中,不是所有子类或者只有少数子类用到的方法,提取出来,调整到子类中去。

    详解:下面的代码中我们用到一个单一的类Registration,来处理学生选课信息。

    1 public class Registration
    2     {
    3         public NonRegistrationAction Action { get; set; }
    4         public decimal RegistrationTotal { get; set; }
    5         public string Notes { get; set; }
    6         public string Description { get; set; }
    7         public DateTime RegistrationDate { get; set; }
    8     }

    从上面的代码我们可以看到有两种不同的上下文关系,我们意识到我们会在两种不同的上下文中使用Registration类,NonRegistrationAction和Notes只有在我们处理未注册情况下才用到。所以我们将NonRegistration和Notes提到单独的NonRegistration类中。

     1 public class Registration
     2     {
     3         public decimal RegistrationTotal { get; set; }
     4         public string Description { get; set; }
     5         public DateTime RegistrationDate { get; set; }
     6     }
     7 
     8     public class NonRegistration : Registration
     9     {
    10         public NonRegistrationAction Action { get; set; }
    11         public string Notes { get; set; }
    12     }

    这样也满足面向对象五大原则之一的单一职责。同时也让类的结构变得更加清晰,增强了可维护性。

  • 相关阅读:
    Exercice_3.8
    Exercice_3.13.1_练习使用vector2
    Exercice_3.13_练习使用vetor
    Exercice_3.10_去掉string对象中的标点符号
    Exercice_3.7_判断两个字符串的大小和长度
    1-日期时间视图 2-长按事件
    View(视图)2
    View(视图)
    计算器(UI事件)给按钮添加监听器
    Activity(活动)
  • 原文地址:https://www.cnblogs.com/yplong/p/5373076.html
Copyright © 2011-2022 走看看