携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的22天,点击查看活动详情
为了活动小家电,接着上篇搞!
2)保持抽象层次的组织,避免嵌套代码
“不洁”
for (person in persons) {
if(person.subscriptions != null) {
if (person.subscriptions.size > 0) {
var isMember = person.isMember()
if (isMember) {
count++
}
}
}
}
“干净的”
var count = 0
for (person in persons) {
if (person.isMember) {
count++;
}
}
class
类应该小于small。它必须只有一个责任和一个改变的理由(SRP)。一个类与其他几个类合作以执行所需的系统行为。
一个类文件就像一篇报纸文章:
- 名称应该简单易懂。
- 从顶部开始的部分包含高级概念和算法。(文章的标题行)
- 向下滚动以显示详细信息。
- 最后,找到最低级别的特征。
凝聚
内聚度是类或模块的元素在功能上相关程度的度量。当它们的内聚度低时将它们分开
耦合
耦合是模块之间相互依赖程度的度量。隔离使每个系统的元素更容易理解。
最好的是那些具有高内聚性和低结合力的。
要完成这个最佳方案,请记住以下原则编写一个类。
- DRY
Don't Repeat Yourself
适用于任何时候复制
粘贴代码降低开发成本
- KISS
Keep It Simple and Stupid
当你想实现一种方法来做所有事情时,更简单的方法不太可能失败。
简单性与我们习惯的不同:for 循环很熟悉,但它们不必简单。\
- YAGNI
You Ain’t Gonna Need It
不要编写你不需要的代码。
评估实施成本:现在就做是昂贵的,所以当你真正需要的时候写代码。\
- SOLID
SRP - 一个类或模块只有一个改变的理由
OCP - 类、模块、函数等软件实体对扩展开放但对更改关闭。
LSP - 程序中的对象可以替换为子类型的实例而不改变程序的行为。
ISP - 实现接口的类不得强制实现未使用的方法
DIP - 高级模块不应该依赖于低级模块,但两者都应该依赖于抽象。 细节中的抽象 \