对于当前的项目来说,如果能够扩展 SimpleXML 类来访问 SimpleXML 可遍历的魔力,那就太棒了。由于我无法理解的原因,构造函数是最终的。无论如何,我该如何延长课程呢?
到目前为止,我所做的是避免在子类上使用构造函数,而是创建一个静态方法来返回一个 XML 字符串,该字符串可在调用者中用于构造对象。不太漂亮,因为它给调用者带来了应该隐藏的模式的负担,但它正在起作用。是否有更优雅的方法来避免最终构造函数的阻碍设计选择?
namespace acme.com;
class SubXML extends \SimpleXML{
static public createXML() {
// here we return a magnificent XML string
// probably from a DB or a REST interface
}
}
$o = new \SubXML( \SubXML::createXML() );
呼啦一阵风