为鱼商采取软件。 为了销售某种鱼,UI显示了鱼的图片。用户可以单击它,然后弹出一个窗口,可以选择不同的鱼。
在一个天真的实现中,组件需要
解决方案1:传递两个课程。 问题是我们的组件可以在另一个组件内。所以这两个类必须传递给我们的组件,在整个地方创建依赖。
解决方案2:回调。 使用回调的实现也不会很干净,因为组件可能在另一个组件内,并且事件必须在整个层次结构中传播。这需要更改几个类。
有关真正干净解决方案的任何建议吗?
答案 0 :(得分:1)
因此,这将是一种显示所选鱼类的图片框,并在点击时打开选择弹出窗口。
我猜这个盒子将是一个更大的结构的一部分,其工作是呈现选定的鱼。也许有一个带有鱼名的标签,另一个带有大小的标签。当选择一条鱼时,我会让他们的父组件设置它们的值。它会知道FishImageLibrary,并能够根据鱼检索图像地址。
对于弹出窗口,我认为命令模式对于这类问题非常标准。它允许您将标准化对象传递到您的图片框,而不必了解OpenSelectionPopup的实现细节,OpenSelectionPopup本身知道FishSelectionPopup以及如何打开它。