我正在用Java开发一个使用MVC架构的应用程序。这样做极大地解耦和简化了我的代码,但问题是模型没有内在的可视化表示。也就是说,没有字符,没有特定的敌人,没有按钮,没有文本框-模型由一种对象的数百个实例组成。每个实例都由策略模式的一个实例控制(从技术上讲,它是策略模式的层次结构);它是应用程序中每个实例之间的唯一不同点。因此,理想情况下,每个实例使用的策略类型应该使其看起来与周围的其他实例略有不同。
我希望避免一个巨大的if语句链,其中包含数十个"instance of“调用,用于检查在为该应用程序开发视图时所使用的策略类型。我还希望避免使用枚举的类似链。关于如何在不屈从于大量的if链的情况下表达我的观点,有什么建议吗?关于如何正确地设计视图,使其不会与策略实例紧密耦合,有什么建议吗?
提前感谢您的宝贵时间!
发布于 2011-07-05 04:43:34
@DJClayworth提出了一个关键问题:
您是否有兴趣向用户展示要选择的策略或该策略的结果?
假设您需要这两者,让模型包含一个与策略名称、实现和描述性文本相关的枚举。该实现可以使用。
在这个example中,enum Rule作为隐式模型服务于所有三个目的。它提供了一个清晰的名称和描述,以及一个代表特定组合策略的常量。不需要case语句。
https://stackoverflow.com/questions/6575681
复制相似问题