为什么使用期末课程
最小化视野
当您看到带有最终前缀的类时,您将意识到该类不能被其他任何扩展,这不仅使其更具可读性,而且还可以确保逻辑范围仅限于该特定类。
鼓励构图继承法
开放/封闭原则说:一个类应该为扩展而开放,但为改变而封闭。
如果出于某种原因(充分理解原因本身)决定使用继承,那么只需删除final关键字即可。
如果您不能“默认”扩展该类(因为它是最终的),则可以通过主要考虑使用组合而不是继承来帮助自己。
为什么这堂课不是决赛?
如果我们的目标是组成而不是继承,那么我们应该尽量避免继承,而仅在真正必要时使用它。OOP继承经常被滥用。
妄想
当我们第一次学习OOP时,我们举了一个经典的继承示例。但是,当艾伦·凯(Alan Kay)创建Smalltalk时,继承并不是他的主要概念。主要概念是消息传递,也就是说,您可以将消息发送给对象,它们封装了数据和逻辑。您可以使用各种对象(实际上是组成对象)更改其行为。但是最后,继承的概念如此流行,以至最终使合成蒙上了阴影。
使用期末课程的好处
- . .
- . , .
- . , .
- . , . .
- . .
- . , , .
- . .
- , , .
- , , . , . , , .
[ ]
- .
- .
- 使用组合(通过类构造函数通过DI)将事物保持在一起并最大程度地减少复杂性。
小计:接口->最终课程->组成