UI中的依赖关系和回调

时间:2011-04-28 14:07:39

标签: oop design-patterns

为鱼商采取软件。 为了销售某种鱼,UI显示了鱼的图片。用户可以单击它,然后弹出一个窗口,可以选择不同的鱼。

在一个天真的实现中,组件需要

  • 访问FishImageLibrary,检索图像
  • 访问FishSelectionPopup,询问用户是否有新鱼

解决方案1:传递两个课程。 问题是我们的组件可以在另一个组件内。所以这两个类必须传递给我们的组件,在整个地方创建依赖。

解决方案2:回调。 使用回调的实现也不会很干净,因为组件可能在另一个组件内,并且事件必须在整个层次结构中传播。这需要更改几个类。

有关真正干净解决方案的任何建议吗?

1 个答案:

答案 0 :(得分:1)

因此,这将是一种显示所选鱼类的图片框,并在点击时打开选择弹出窗口。

我猜这个盒子将是一个更大的结构的一部分,其工作是呈现选定的鱼。也许有一个带有鱼名的标签,另一个带有大小的标签。当选择一条鱼时,我会让他们的父组件设置它们的值。它会知道FishImageLibrary,并能够根据鱼检索图像地址。

对于弹出窗口,我认为命令模式对于这类问题非常标准。它允许您将标准化对象传递到您的图片框,而不必了解OpenSelectionPopup的实现细节,OpenSelectionPopup本身知道FishSelectionPopup以及如何打开它。