PHP,Java和其他语言的最终课程

使用最终课程还是不使用最终课程?就是那个问题。以及何时以及如何正确地做到这一点。







为什么使用期末课程



最小化视野



当您看到带有最终前缀的类时,您将意识到该类不能被其他任何扩展,这不仅使其更具可读性,而且还可以确保逻辑范围仅限于该特定类。



鼓励构图继承法 



开放/封闭原则说:一个类应该为扩展而开放,但为改变而封闭。



如果出于某种原因(充分理解原因本身)决定使用继承,那么只需删除final关键字即可。



如果您不能“默认”扩展该类(因为它是最终的),则可以通过主要考虑使用组合而不是继承来帮助自己。



为什么这堂课不是决赛?



如果我们的目标是组成而不是继承,那么我们应该尽量避免继承,而仅在真正必要时使用它。OOP继承经常被滥用。



妄想



当我们第一次学习OOP时,我们举了一个经典的继承示例。但是,当艾伦·凯(Alan Kay)创建Smalltalk时,继承并不是他的主要概念。主要概念是消息传递,也就是说,您可以将消息发送给对象,它们封装了数据和逻辑。您可以使用各种对象(实际上是组成对象)更改其行为。但是最后,继承的概念如此流行,以至最终使合成蒙上了阴影。



使用期末课程的好处



  • . .
  • . , .
  • . , .
  • . , . .
  • . .
  • . , , .
  • . .




  • , , .
  • , , . , . , , .


[ ]



  • .
  • .
  • 使用组合(通过类构造函数通过DI)将事物保持在一起并最大程度地减少复杂性。


小计:接口->最终课程->组成



All Articles