php - 从 XML 外部化对象创建还是从构造函数中创建对象更好?

标签 php design-patterns oop

我有一些从 XML 配置创建的 PHP 类。我想知道的是:

我(从面向对象的角度)使用工厂方法从 XML 创建这些类或将 XML 传递给构造函数以创建类更好吗?

工厂方法的优点是将构造与使用分开,并且更容易允许替代实现,但您随后需要公开 setter 或将一大堆对象传递给构成其状态的构造函数。

另一个微妙之处在于,传入 XML 允许您自上而下地创建对象,而一些较低的对象将需要引用它们上方的那些对象。第二种方法会产生更自下而上的结果。

或者是否有更多设计模式类型的方法来解决这个问题?

想法?

最佳答案

听起来您需要某种依赖注入(inject)框架。 Symphony 的 DI 有一个很好的大纲 here .一个好的 DI 框架将帮助您设计一个干净且可测试的架构,这可以缓解构造函数需要太多参数等问题。

关于php - 从 XML 外部化对象创建还是从构造函数中创建对象更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/846326/

相关文章:

c++ - 访客模式+开放/封闭原则

c++ - 如何在 C++ 中正确创建基类?

C#,读/写分离和属性。需要图案

c# - 从基类创建派生类的实例

java - Java中接口(interface)如何做到100%抽象?

PHP 和 MySQLi close()

具有相同类名的php多个class_alias

php - 尝试将数组恢复到表中的列表

php - Facebook邀请 friend 跟踪

design-patterns - 在 Controller 或服务层反序列化?