概述 有时候你可能会在条件判断中,根据不同的对象类型(通常是基类的一系列子类,或接口的一系列实现),提供相应的逻辑和算法。当出现大量类型检查和判断时,if else(或switch)语句的体积会比较臃肿,这无疑降低了代码的可读性。另外,if else(或switch)本身就是一个“变化点 ...
概述 子类可以继承父类的字段 属性和方法,使用 继承 可以较大程度地复用代码。在使用继承时,务必要确定代码中定义的 父类 和 子类 确实存在客观的 父子关系 ,而不要去做 为了代码复用而使用继承 的事情,这是舍本逐末的做法,也是滥用继承的体现。滥用继承会破坏类之间客观存在的关系,也会模糊代码所体现的语义。 使用委派代替继承 继承的误区 当多个类具有相似的属性 方法时,使其中一个类变成基类,其他的类 ...
2016-05-07 09:32 9 1604 推荐指数:
概述 有时候你可能会在条件判断中,根据不同的对象类型(通常是基类的一系列子类,或接口的一系列实现),提供相应的逻辑和算法。当出现大量类型检查和判断时,if else(或switch)语句的体积会比较臃肿,这无疑降低了代码的可读性。另外,if else(或switch)本身就是一个“变化点 ...
,我们需要追加分支语句,并追加相应的行为或算法。 上一篇文章“使用多态代替条件判断”中,我们讲到它可以处理这 ...
概述 异常处理的关键在于何时处理异常以及如何使用异常,有些开发者会觉得try catch的处理和使用难以把握,于是他们秉承着“您可错杀一千,不可放过一个”的想法,给所有的方法添加try catch。 这种方式会对应用程序造成什么影响吗? 从用户角度出发,用户确实难以察觉到什么,应用程序运行 ...
的“移动方法”,是一种让方法放进合适的class的重构策略。 选择合适的容器 生活中我们会用到杯子和 ...
为了方便大家阅读这个系列的文章,我弄了个目录汇总。 开篇和结尾 开篇有益 (2016-04-23) 终篇总结 (2016-06-02) 方法、字段重构 移动方法 (2016-04-24) 提取方法、提取方法对象 (2016-04-26) 方法、字段的提升和降低 ...
概述 阅读文章时,如果某个段落已经传达了关键信息,我们可能就不会逐字逐句地将文章读完,因为我们已经知道了这篇文章的核心内容。与此类似,如果方法中某些条件判断可以得到结果,我们应该尽快返回该结果。 ...
概述 “分离职责”是经常使用的一个重构策略,当一个类担任的职责太多时,应按职责将它拆分成多个类,每个类分别承担“单一”的职责,也就是让每个类专心地做“一件事情”。 SRP原则 在面向对象编程中,SRP原则是一个非常重要的原则(SOLID原则都很重要),在展示示例前,我们先了解一下SRP原则 ...
概述 当方法返回类型或属性类型为集合时,有些开发者会千篇一律地使用IList<T>集合。然而IList<T>具有集合的所有操作,这意味着调用者不仅可以读取集合信息,还能够修改集合。业务需求本来只是为调用者提供一个可读的集合,例如数据的查询和展示,但当方法返回 ...