代码没有一个实例,全是静态方法调用,这样有什么好处和坏处?
PHP不像java, 对象的生命周期极短, 实例化没有意义,对嘛?
代码没有一个实例,全是静态方法调用,这样有什么好处和坏处?
PHP不像java, 对象的生命周期极短, 实例化没有意义,对嘛?
大家都说了理论上的东西了,那我就说点实际场景的。
PHP搞面向对象,我找到的两种非常有用的场景:
一种是功能极为单一且会在大量不同场景下使用到的模块,用面向对象方法会非常容易移植。虽说直接写个函数也可以,但是就会有不确定性的冲突问题,而实例化不仅调用简单,而且文档好写,冲突好解决。举例子来讲的话,可以参考IPIP的免费版PHP接口。
另一种是PHP框架,这种情况下类和对象复用率极高。
因为PHP大部分情况下面对的问题都很唯一,所以复用率会比较低,所以PHP也不是非常面向对象的语言。
代码没有一个实例,全是静态方法调用
那是因为 php 以前就没有 OO 那套东西。有毛好处,就是简陋。
PHP不像java, 对象的生命周期极短, 实例化没有意义,对嘛?
那看什么对象,如何设计, web 场景下, java 如果处理每个请求都实例化一下,一样生命周期极短。
短不短取决于你怎么用它,如果你打算用来跑swoole之类在cli下运行的脚本,然后又用一堆静态方法静态属性甚至一堆单例,立马就可以坑到你没脾气。
OO最重要的用途是抽象,如果全是静态方法静态属性,那干嘛不用命名空间 + 函数 + 静态变量,要是闭包再用的6一点,变量照样可以隐藏起来实现模块化,但是那样看起来更像是在写c语言
3 回答2.4k 阅读✓ 已解决
3 回答3.9k 阅读✓ 已解决
8 回答3.3k 阅读
4 回答2.6k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
2 回答3k 阅读✓ 已解决
对象并不是用来提升性能的。
面向对象是一种开发方式。
解决一个问题最好的方式就是将它抽象成一个通用的解决方案,然后用对象来完成方案的细节的封装。