设计异味

✍ dations ◷ 2025-04-26 03:41:10 #计算机编程

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

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

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

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

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

相关

  • 肌腱腱(或称肌腱)是一坚韧的结缔组织带,通常将肌肉连接到骨骼,并可承受张力。腱类似韧带和筋膜,都是由胶原蛋白组成;不过,韧带是连接骨骼,而筋膜则连接肌肉。肌腱与肌肉一起作用产生动作
  • 驾驶驾驶,指的是人类在操纵交通工具或一些机械设备时的行为,可分为机动车驾驶、船舶驾驶、列车驾驶、航空器驾驶、其它驾驶,这些一般都属于真实驾驶,可采用手动驾驶或自动驾驶的方式
  • 关系数据库关系数据库(英语:Relational database),是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均
  • 有蹄类动物有蹄类是指几类使用趾尖(一般都有蹄)来支撑身体的哺乳动物。它们共有几个目,当中有奇蹄目和鲸偶蹄目仍然生存。有蹄类是一个支序分类学的分支,或只是一个分类单元仍存有争议,因为
  • ε-均衡在博弈论中,ε-均衡(Epsilon-Equilibrium)是一个近似符合纳什均衡条件的策略组合,有时也称近似纳什均衡。给定一个对策模型和一个非负实参数ε,一个策略组合被称为ε-均衡,当没有
  • V-2火箭V-2火箭是指德国在第二次世界大战中研制的一种短程弹道导弹,也是世界上最早投入实战使用的弹道导弹。其目的在于从欧洲大陆直接准确地打击英国本土目标。因为是人类第一个可
  • 化学标记语言化学标记语言,亦称化学置标语言(英文为Chemical Markup Language,通常缩写为CML),是一种基于XML语言,用于描述化学分子、化学反应、光谱等化学数据的标记语言。可以使用Jumbo浏览
  • 周忱明《三才图会》载《工部尚书周文襄公像》《周易大全》、《书传大全》、《诗经大全》、《礼记大全》、《春秋大全》、《四书大全》、《性理大全书》、《双崖诗集》周忱(1380年
  • 大炊御门家信大炊御门家信(1810年7月10日-1885年8月30日),是江户时代后期的公卿;也是藤原北家清华家的大炊御门家(日语:大炊御門家)当主。大炊御门家信在文政元年(1818年)出生,是父母大炊御门经久及
  • 住房权协会住房权协会(,简称 )是一个法国的非营利组织,它成立于1990年,目的在帮助社会上最脆弱的族群(无家可归者与居住条件恶劣者)行使其“住房权”。在1990年6月,48对夫妇被从他们在巴黎第20