我被要求用 PHP 做一个项目并确保它是面向对象的。我做过 OO 和 PHP,但从来没有两者兼而有之。
OO PHP(继承/多态之外)的主要好处似乎是代码组织。没关系; 我正在这样做。但是我卡住的地方是我是否应该为每个“对象”创建实例。
对我来说(也许我在这里太天真了),Web 应用程序就是要发出非常短的、无状态的请求来更改或检索数据库中的记录。对象不能在请求之间持续存在。因此,从数据库加载数据,从该数据构造一个对象,进行小幅更新,将对象中的数据保存回数据库,然后丢弃该对象,这感觉相当没有意义。加载/保存代码似乎白费了很多工作。[澄清:浪费开发时间,而不是处理时间......不要太在意开销]
另一种选择是拥有一堆单例(或具有静态方法的类),它们只是为数据库层提供一个很好的、有组织的抽象层。我想以这种方式编写代码并没有真正的面向对象的感觉。我错过了什么还是那种风格很好?