2010-11-25 82 views
0

我有一个模型类,例如代表一个3D播放器。我需要一个设计模式来解决这个问题

一个模型由一个或多个基础组件组成。例如,一个组件可以代表躯干的形状。 (组件存储在模型对象的列表中)

当我们向模型添加组件时,我们得到了一个类似于正在形成的对象结构的树,因为每个组件都有它自己的子组件列表,例如一个组件躯干可以有许多儿童组件,即2个独立的上臂组件,2个独立的大腿组件和一个颈部组件。然后颈部部件具有对头部部件的参考。

这实际上创建了组件对象的层次结构。

简介:该应用程序需要能够自由编辑和删除组件。如上所述,由于它们可以相互关联以形成层次结构,所以父组件如何知道其子组件的更改?

任何人都知道什么设计模式解决这个问题?

回答

1

您可以使用简单的observer pattern,其中您的父组件正在观察他们的孩子。

如果您的编程语言支持事件通知,则可以在发生更改时触发Child引发的事件。当孩子被添加到父母时,父母会订阅相关事件并在变化发生时收到通知。当孩子被删除时,父母退订。

+0

真棒:)谢谢:) – Daniel 2010-11-25 12:13:01