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
  • 相关阅读:
    [恢]hdu 2502
    [恢]hdu 1008
    [恢]hdu 2073
    [恢]hdu 2500
    [恢]hdu 2501
    [恢]hdu 2190
    [恢]hdu 2535
    [恢]hdu 2085
    [恢]hdu 2067
    [恢]hdu 2504
  • 原文地址:https://www.cnblogs.com/zhangronghua/p/1583879.html
Copyright © 2011-2022 走看看