zoukankan      html  css  js  c++  java
  • 31天重构指南之二十:提取子类

    今天要说的重构来自于Martin Fowlers的模式目录,你可以在这里找到它。

    当你的基类中存在一些方法不是所有的子类都需要访问,你想将它们调整到子类中时,这个重构会很有用。我举一个简单的例子,我们想要一个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类开始工作后,我们意识到我们会在两种不同的上下文中使用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: }
     
    原文链接:http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/20/refactoring-day-20-extract-subclass.aspx
  • 相关阅读:
    Shell IFS
    Crontab
    linux awk
    free
    条件语句练习2
    条件语句练习
    打印菜单
    条件测试语法
    read 命令
    jQuery(实例)
  • 原文地址:https://www.cnblogs.com/zhangronghua/p/1583879.html
Copyright © 2011-2022 走看看