我目前正在将应用程序重构为多个类,以实现单一责任原则;然而,原始庞大的类中的许多方法使用一个共同的“元数据”对象(绑定为类属性)作为其业务逻辑。
例如:
if($this->metadata->applyTracking) {
// perform tracking logic
}
当我将这些课程分开时,我正在考虑两种选择:
有关走哪条道路的建议?
答案 0 :(得分:1)
方法#2似乎是最好的。我会注入一个对象存储库,其中存储库的每个成员都是提供不同服务的不同对象。可以在此处找到示例类:https://github.com/kenaniah/insight/blob/master/classes/registry.php
答案 1 :(得分:1)
如果您的代码中有继承,您可以考虑将其指定为基类中的成员,并将该实例公开为受保护变量。
Singleton真的更多的是关于这个类是否应该一次只在内存中有一个实例,或者你是否会多次实例化该类。
答案 2 :(得分:0)
如果不了解对象的使用方式,我很难肯定地说,但我可能建议有一个基类来定义所需的属性,然后在任何需要访问的后续类中继承该基类。那些属性。
然而,快速移动只是打败了我,哈哈。