【发布时间】:2017-05-07 04:28:04
【问题描述】:
我想在 php 中使用父/子类,但不使用子类。例如,假设我们有一个 House 类,而一个房子有 Doors 和 Windows。
class House {
}
class Door {
}
class Window {
}
我们有两种类型的门,比如车库门和前门。
class GarageDoor extends Door {
}
class FrontDoor extends Door {
}
如何创建 House 和 Door 以及 House 和 Window 之间的关系,这样当我创建门时,必须至少有一个房子,并且我应该知道具体的房子。当我删除房子时,它的门窗也应该被删除。我该怎么做?
【问题讨论】:
-
工厂模式将有助于以正确的方式管理对象的创建并使用依赖注入。观察者模式可以让你监听要解构的对象并执行一个动作。
-
门是房屋中的一个组件,因此您可能需要在 House 中为 Door 对象(或 Door 对象数组,如果您有多个门)设置一个类属性。类似地,可以引用 House in the Door,尽管这可能会导致耦合,我认为这在这种情况下并不重要。