【发布时间】:2010-07-29 15:04:43
【问题描述】:
我正在将一个旧的过程式 PHP 网站重构为一个美味的 OOP 应用程序,并添加了少量的领域驱动设计以增加风味。
我经常遇到一些情况,即我需要可以有子类的类,这些子类可以是实体或值对象。
例如一个 url 对象。那里有无数的网址,所以它们都不能真正成为实体。但有些是非常特殊的 url,比如我的主页。那是一个实体。
另一个例子是“配置对象”。我想要一些配置有身份,这样我就可以创建“预设”并通过在线控制面板管理它们。对于那些需要查找器/存储库来找到它们,并且需要 ORM 来管理它们的生命周期。但是,对于其他“非预设”(具有相同的类层次结构),我希望能够使用动态定制且不需要持久化的数据加载它们。
我设想了很多:
class factory {
reconstitute($rawdata) {
if (raw data has identity)
load up and return entity version of the class
else
load up and return anonymous/value object version of the class
这一切似乎有点奇怪。
是否有任何模式可以讨论处理此问题的最佳方法?
【问题讨论】:
标签: oop dns domain-driven-design entities value-objects