博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重构第20天 提取子类(Extact SubClass)
阅读量:6377 次
发布时间:2019-06-23

本文共 973 字,大约阅读时间需要 3 分钟。

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

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

 

1 public class Registration2     {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     }

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

 

转载地址:http://rltqa.baihongyu.com/

你可能感兴趣的文章
7.Ajax
查看>>
Linux vi/vim编辑器常用命令与用法总结
查看>>
对于 url encode decode js 和 c# 有差异
查看>>
centos rz sz安装
查看>>
mysql 修改列为not null报错Invalid use of NULL value
查看>>
epoll源码分析
查看>>
朱晔和你聊Spring系列S1E4:灵活但不算好用的Spring MVC
查看>>
Java使用Try with resources自动关闭资源
查看>>
china-pub十一周年庆,多重优惠隆重登场,千万别错过哟!
查看>>
HDU 3068 最长回文(manacher算法)
查看>>
二叉树
查看>>
Node脚手架编写初学者教程
查看>>
08_Node js 工具模块 util
查看>>
手把手教你如何安装水晶易表——靠谱的安装教程
查看>>
Python单例模式(Singleton)的N种实现
查看>>
requirejs的插件介绍与制作
查看>>
SpringBoot整合Angular应用第二弹-配置支持Angular
查看>>
Facebook、纽约大学利用机器学习5分钟搞定核磁共振检查
查看>>
221. Maximal Square
查看>>
MySQL基础
查看>>