service层和model层应该全部使用静态类吗?

2019-10-05  本文已影响0人  Abin_

静态类,即整个类全部使用静态方法。好处自然是不用讲,可以不用实例化。直接使用类名::方法调用。而实例化方法,必须先实例化(new)方可调用。除此,静态方法在加载类的时候,就已经加载到内存(PS:有说其实实例方法也是编译阶段就加到内存,并无区别),并且有仅有一份,具有比实例方法更高的效率。而实例方法,必须先实例化,每个实例都是一个副本。每创建一个实例都是不小的开销。看到此处,似乎静态类拥有比实例类更实用和高效。其实这已经是我第二次在企业级项目中使用laravel框架中看全局使用静态类。

关于这个问题,我也是通过segmentfault、Google、stackoverflow等渠道找了很多观点。发现确实存在争议。有人认为不应被OOP的思想固化,怎么简单怎么来。有的则认为应该用好OOP的思想,静态类在面向对象世界中就是一个异类,不应该存在。

思考再三并结合这么多年的编程实践。我决定就此议题直接抛出自己的一些观点。希望有更深刻认识的同行能给予指导。

上一篇下一篇

猜你喜欢

热点阅读