跳转至

Design Concept⚓︎

593 个字 预计阅读时间 3 分钟

一个软件会不断发生变化,随时都有可能被维护、调整或扩展;并且随着时间推移,这些工作可能由不同的人来完成。如果某个软件没有发生改变的话,那它就会被扔进历史的故纸堆里了。

关于代码质量,有两个重要的概念:耦合(coupling) 内聚(cohesion)。

代码重复 (code duplication)

代码重复是不良设计的一个征兆,会增大代码维护的难度,甚至可能在维护过程中引入新的错误。

Coupling⚓︎

耦合(coupling) 是指程序中不同单元之间的连接。如果两个类在很多细节上有互相依赖的关系,那么我们认为它们是紧密耦合的。

我们的目标是松弛这种耦合关系,因为这有助于我们在不阅读其他类的情况下理解一个类,以及在不影响其他类的情况下改变一个类,从而提升了可维护性。

松弛耦合的方法有:

  • 回调 (call-back)
  • 消息机制 (message mech)

Cohesion⚓︎

内聚(cohesion) 指的是单个单位负责的任务数量和多样性,这一概念适用于类和方法上。如果一个单元仅对一个逻辑逻辑任务负责,那我们称这个单元具有高度的内聚性。

  • 方法的内聚:方法(函数)应该仅为一个定义良好的任务负责
  • 类的内聚:类应该表示为单个良好定义的实体

我们的目标是增强内聚性,因为这有助于理解类或方法的作用,使用描述性的名称以及重用类或方法。

Responsibility-Driven Design⚓︎

每个类应该为自己操纵的数据负责,所以我们希望做到改变局部化(to localize change),即一次改变仅会影响到少量类,从而降低耦合,实现责任驱动的设计。

Refactoring⚓︎

我们在维护类的时候,经常会让类和方法的代码增多,所以在维护时往往需要重构(refactor) 代码,以维护代码的内聚性和低耦合。

  • 在重构代码时,不要让重构改变了代码的其他地方或代码的功能
  • 重构前后需要检查代码,确保没有地方是被破坏掉的

评论区

如果大家有什么问题或想法,欢迎在下方留言~