设计异味

✍ dations ◷ 2025-11-12 12:45:55 #计算机编程

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

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

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

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

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

相关

  • 乳糜颗粒乳糜微粒(英语:Chylomicron,缩写CM)是血浆五种主要脂蛋白之一(其余为VLDL、IDL、LDL和HDL),也是其中体积最大和密度最小的一种。它在小肠上皮细胞的内质网和高尔基体上装配而成,主要
  • 促甲状腺素释放激素促甲状腺激素释放激素简称甲促素释素(thyrotropin-releasing hormone、TRH),是由下丘脑(Hypothalamus)所制造的肽类激素(Peptide Hormone),能够调节脑下垂体前叶分泌促甲状腺激素(甲
  • 斯堪地那维亚半岛斯堪的纳维亚半岛(丹麦语:Skandinaviske halvø,瑞典语:Skandinaviska halvön,挪威语:Den skandinaviske halvøy,芬兰语:Skandinavian niemimaa),位于欧洲西北角,其濒临波罗的海、挪
  • 西山万寿宫玉隆万寿宫,又名西山万寿宫,始建于东晋太元元年(376年),为道教三十六洞天的第十二小洞天和七十二福地的第三十八福地,位于江西省南昌市新建县境内。是江南著名道教宫观和游览胜地,
  • 张曾敭张曾敭(1852年-1920年),字小帆,又字润生、抑仲,号静渊。直隶南皮(今属河北)人。清末政治人物。同治十年(1871年)进士。选庶吉士,授编修。历官湖南、广东知府,除福建盐法道。光绪三十一年
  • 吴性诚吴性诚(?-1826年),字朴庵,湖北省黄安县人,清代官员。吴性诚为廪贡出身,捐得县丞职务。嘉庆十七年(1812年)七月护理台湾府粮补海防通判,嘉庆十九年(1814年)署凤山县知县,二十四年(1819年)再任
  • 片仓景纲片仓景纲(1557年-1615年12月4日)是日本战国时代至江户时代前期的武将。伊达氏家臣。伊达政宗的近习,后来担任军师。仙台藩片仓氏初代,通称“小十郎”为片仓世袭的当家名称。父亲
  • 股灾股灾是指股市大部分股价毫无先兆大幅下滑。股灾通常是投机造成经济泡沫之后果,很多时与实体经济无关,而是由羊群心理造成之社会现象;由于市盈率高于合理水平,小数人之出售行为或
  • 似谢氏烟管蜗牛似谢氏烟管蜗牛(学名:)为烟管蜗牛科台湾纺锤烟管蜗牛属下的一个种。
  • Jello ChatJello,是一款全球通用的通讯软件,以免费通话传讯、高隐私、无痕、涂鸦、自制贴图/GIF、串连街口电子支付转账/发红包为产品特色。Jello 自2019年1月31日起交由街口接管营运,隶