隐藏页面特效

重构:改善既有代码的设计 读书笔记3

- Inappropriate Intimacy(过于亲密):使用继承复用代码会经常性的引发这种问题,因为子类对父类的了解总是超过后者的主观愿望,如果你觉得这个孩子可以独立生活了,就应该让它离开继承体系,这一点跟面向对象设计原则中的合成聚合复用原则不谋而合。
- Alternative Classes with Different Interfaces(异曲同工):两个方法做同一件事情却有着不同的签名。
- Incomplete Library Class(不完整类库)。
- Data Class(数据类):类的退化结构。我们在分层开发中经常使用的失血模型(事务脚本模式)中的业务实体不就是数据类吗,这明显与面向对象的思想是背道而驰的。
- Refused Bequest(拒绝遗产):如果子类复用了父类的行为,又不愿意支持父类的接口,可以考虑用合成关系聚合关系取代继承关系来消除这种坏味道。
- Comments(注释劣质代码):注释不是用来补救劣质代码的,事实上如果我们去除了代码中的所有坏味道,当劣质代码都被移除的时候,注释已经变得多余,因为代码已经讲清楚了一切。

  彻底根除代码中这些坏味道的方法在《重构》一书的第六章到第十二章,提供了约70条重构建议,其中一部分常用的重构建议在IDE的重构菜单中也能找到。


__EOF__

本文作者往心。
本文链接https://www.cnblogs.com/lx06/p/14503499.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   往心。  阅读(41)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示