我创建了一个旨在由用户实现的界面。我唯一真正的要求是用户实现 Save() 和 Load() 方法。现在保存很简单,但我遇到的问题是 Load()。
为了让 Load() 成为接口的一部分,它需要是一个实例方法。但它的本质是返回一个从数据库加载的新对象。这意味着 Load() 需要定义为静态的。接口不强制执行静态方法。
如何要求实现接口的用户为 Load() 编写自己的代码?
我正在使用 PHP5.4,它确实要求在子类中遵循构造函数定义,因此一个想法是将其更改为抽象类并定义一个带有 $id 变量的构造函数。如果是null
我们创建一个新对象,如果已设置则加载该对象。我更愿意将此设置保留为界面。还有一些歧义和一些用户错误地实现他们的构造函数的担忧。更容易记录和描述load()
应该做什么。