Design Concept⚓︎
约 593 个字 预计阅读时间 3 分钟
一个软件会不断发生变化,随时都有可能被维护、调整或扩展;并且随着时间推移,这些工作可能由不同的人来完成。如果某个软件没有发生改变的话,那它就会被扔进历史的故纸堆里了。
关于代码质量,有两个重要的概念:耦合(coupling) 与内聚(cohesion)。
代码重复 (code duplication)
代码重复是不良设计的一个征兆,会增大代码维护的难度,甚至可能在维护过程中引入新的错误。
Coupling⚓︎
耦合(coupling) 是指程序中不同单元之间的连接。如果两个类在很多细节上有互相依赖的关系,那么我们认为它们是紧密耦合的。
我们的目标是松弛这种耦合关系,因为这有助于我们在不阅读其他类的情况下理解一个类,以及在不影响其他类的情况下改变一个类,从而提升了可维护性。
松弛耦合的方法有:
- 回调 (call-back)
- 消息机制 (message mech)
Cohesion⚓︎
内聚(cohesion) 指的是单个单位负责的任务数量和多样性,这一概念适用于类和方法上。如果一个单元仅对一个逻辑逻辑任务负责,那我们称这个单元具有高度的内聚性。
- 方法的内聚:方法(函数)应该仅为一个定义良好的任务负责
- 类的内聚:类应该表示为单个良好定义的实体
我们的目标是增强内聚性,因为这有助于理解类或方法的作用,使用描述性的名称以及重用类或方法。
Responsibility-Driven Design⚓︎
每个类应该为自己操纵的数据负责,所以我们希望做到改变局部化(to localize change),即一次改变仅会影响到少量类,从而降低耦合,实现责任驱动的设计。
Refactoring⚓︎
我们在维护类的时候,经常会让类和方法的代码增多,所以在维护时往往需要重构(refactor) 代码,以维护代码的内聚性和低耦合。
- 在重构代码时,不要让重构改变了代码的其他地方或代码的功能
- 重构前后需要检查代码,确保没有地方是被破坏掉的
评论区
如果大家有什么问题或想法,欢迎在下方留言~