【发布时间】:2016-06-18 17:36:37
【问题描述】:
假设我有一个定义实体的类,例如 Product。
我的框架是在可切换模块中构建的,因此某些模块可以扩展默认类,即:
-
Module1让我定义一个ColoredProduct -
Module2让我定义一个ShapedProduct
如何定义ColoredProduct、ShapedProduct 和Product 之间的关系?如何确保我可以获得动态关系(在没有代码干预的情况下切换一个或另一个)?
我是否扩展类产品?我是否在每个子类中都引用它?
我正在使用 PHP。感谢您的意见。
【问题讨论】:
-
在您的情况下,“在没有代码干预的情况下切换一个或另一个”短语是什么意思?
-
这意味着我可以启用或禁用我的模块。
-
您能说明您主要如何在技术上启用/禁用其中一个模块吗?
-
从技术上讲,我有一个包含已启用模块列表的数据库表。我的界面显示我的模块是否启用取决于此表,以及我的模块文件夹中的存在。添加模块会动态修改作曲家自动加载器,然后加载我的类 (
$classLoader->addPsr4...) -
那么,在哪里找到了这样的方法?每次您的代码运行并启动数据库查询时,以验证当前模块是启用还是禁用。有什么好处?
标签: php oop architecture modularity conceptual