设计异味

✍ dations ◷ 2025-07-16 05:01:02 #计算机编程

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

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

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

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

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

相关

  • 双盲双盲是科学方法的一种,目的是避免研究结果受安慰剂效应或观察者偏向所影响。在各种科学研究领域中,从医学、食品、心理到社会科学及法证都有使用双盲方法进行实验。单盲(Single
  • 达那唑达那唑(Danazol)为一种用于治疗子宫内膜异位症、乳腺小叶增生、遗传性血管性水肿(英语:hereditary angioedema)及其他疾病的药物,主要经口服给药。达那唑具有雄性化的副作用,使其用
  • 兽孔类兽孔目(学名:Therapsida)是合弓纲中的一目。传统上,单孔亚纲被归类于爬行纲的一个亚纲,并名为似哺乳爬行动物。然而单孔亚纲现在为独立的合弓纲,是蜥形纲的姐妹分类单元,较接近哺乳
  • 阿维菌素阿维菌素(英语:Avermectin)是一种十六元大环内酯衍生物,作为强力的驱虫药和杀虫剂使用。阿维菌素是一种天然化合物,由链霉菌(Streptomyces avermitilis)发酵产生,这是一种土壤放线菌
  • 害羞羞怯(英语:Shyness),也叫害羞,是在接近其他人时,所出现恐惧、不舒服、尴尬的感觉,这通常发生在处于新的环境或是和不熟悉的人相处时。害羞可能是自尊感较低的人格特质。害羞感若相
  • 德利尔温标德利尔温标(英语:Delisle scale,符号为°D)是1732年由法国天文学家约瑟夫-尼古拉斯·德利尔(1688-1768)发明的一种温标。该温标最早将水的沸点定于零度,然后将水银体积随温度降低收
  • 副眼器眼副器是眼的辅助装置,有保护、运动和支持眼球的作用。眼副器和眼球共同构成视器。眼副器包括眼睑、结膜、泪器、眼球外肌、眶脂体、眶筋膜等结构
  • 三十字架三十字架(立陶宛语:Trys kryžiai)是位于立陶宛首都维尔纽斯三十字丘(又名Bleak Hill 立陶宛语:Plikasis kalnas)上的一座纪念性建筑。 在维尔纽斯的三十字丘,至迟在1636年就已经有
  • 宗室伊冲阿宗室伊冲阿(满语:ᡠᡴᠰᡠᠨ ᡳᠴᡠᠩᡤᠠ,穆麟德:),满洲正蓝旗,清朝政治人物、清朝工部尚书。曾任理藩院尚书。嘉庆二十二年六月甲戌,接替和宁,担任清朝工部尚书,后改兵部尚书。由苏
  • 苏肇伉苏肇伉是中国小儿心胸外科专家,2004年全国五一劳动奖章获得者,2005年中国医师奖获得者。主要从事新生儿、婴幼儿先心病研究。在中国首先将深低温停循环技术应用于婴儿先心病手