设计异味

✍ dations ◷ 2025-12-10 19:30:28 #计算机编程

设计异味是计算机编程领域,设计所用结构违背了基本设计原则并对设计质量有负面影响。这个术语源自马丁·福勒在《重构-改善既有代码的设计》一书中描述的代码异味。

不同作者对“异味”(smell)有不同的定义:

设计异味指示了积累的设计负债(技术负债的主要维度)。Bug与未实现功能不算是设计异味。设计异味产生于很差的设计决策,使得设计脆弱、难于维护。在一个软件系统中辨别设计异味,应用适当的重构去除异味,避免积累技术负债,是好的实践。

在确定特定结构或决策是否算作设计异味时,上下文环境(如问题清单、设计生态圈、平台等)扮演了重要角色。很多时候,由于上下文环境所限,只好容忍设计异味。

面向对象设计的SOLID五大原则:单一功能原则:一个类只应有一个“改变的原因”(即功能);开闭原则:软件实体(类、模块、函数等)应当对扩展是开放的,对修改是关闭的;里氏替换原则:子类型能替换基类型;依赖反转原则:高层模块不应依赖于低层模块,二者应当依赖于抽象。抽象不应依赖与细节。细节应当依赖于抽象。接口隔离原则:类应当有胖(fat)接口,可被分为方法的分组。每个分组服务于不同的客户集。客户不应当知道这些分组是在同一个类中。

相关

  • DNA微阵列DNA微阵列(DNA microarray)又称DNA阵列或DNA芯片,比较常用的名字是基因芯片(gene chip)。是一块带有DNA微阵列(microarray)的特殊玻璃片或硅芯片片,在数平方公分之面积上布放数千或
  • 琉善琉善(希腊语:Λουκιανός,约120年—180年),生于叙利亚的萨莫萨塔,罗马帝国时代的以希腊语创作的讽刺作家,以游历月球的奇幻短篇《信史》(周作人译作《真实的故事》)及一系列对
  • 教育学教育学是研究教育现象和教育问题,揭示教育规律的一门学科,是一门研究如何培养人的科学。教育学作为一种思想和想象,零星记载于当时的思想家、哲学家的言论和著作中,如柏拉图的《
  • 卢米埃兄弟卢米埃兄弟,即哥哥奥古斯塔·玛丽·路易斯·尼古拉斯·卢米埃尔(法语:Auguste Marie Louis Nicholas Lumiere,1862年10月19日-1954年4月10日)和弟弟路易斯·让·卢米埃尔(法语:Louis
  • 栓子栓子是指在血管中游离的团块,可以借由循环系统在血流中被运送到远离它起点的微血管,造成血流阻塞。栓子可以是固体,液体或气体团块。栓子和栓塞不同,栓塞是指栓子造成的血流阻塞
  • 温度梯度温度梯度(英语:Temperature Gradient),是描述温度在特定的区域环境内最迅速的变化会向何方向,以及是何种速率的物理量。温度梯度是一维的数量,单位是度/每单位长度(在特定的温度范
  • 罗加诺公约洛迦诺公约(Locarno Treaties),又译罗加诺公约,是在1925年10月5日至16日欧洲多国在瑞士洛迦诺商议的七项协议,在同年12月1日于英国伦敦签署,隔年9月14日于日内瓦批准生效。一战中
  • 纳丁·巴罗纳丁·巴罗(英语:Nadine G. Barlow,1958年-),美国女性行星科学家,现任教于北亚利桑那大学物理与天文学系。现职是该系副系主任,并且是该校 NASA 太空辅助计划主任,以及亚利桑那太空辅
  • 才宽才宽(?-1509年),字汝栗,直隶永平府迁安县人,明朝政治人物。成化戊戌进士。正德间曾任工部尚书,出为三边总制。早年出身县学增广生,进顺天府乡试第八十三名。成化十四年(1478年)登戊戌科
  • DARKER THAN BLACKDARKER THAN BLACK系列是由动画公司BONES与冈村天斋制作的TV动画及衍生作品。本作正式简称是“DTB”,在日本也简称作“DARKER(ダーカー)”。目前整个系列的故事由以下3部已完结