0

我正在开发一个任务管理应用程序,它使用 ResourceManager 来管理不同资源的所有预留,每个资源都有它们的 ResourceType。目前,有 5 种 ResourceType,它们不会定期更改,但可能会发生。

我的问题是,就 OO 设计、GRASP 原则和代码的整体可维护性而言,实现此设计的最佳方法是什么:

  • 选项 A:单独的类 Resource 和 ResourceType + ResourceManager 类将为每种资源类型保留资源的多映射

  • 选项 B:单独的类 Resource + ResourceType 类将包含其对应资源的列表。

在我看来,对于选项 B,关于资源及其类型的凝聚力会更高,但我正在寻找某些(重构)场景,其中一个选项会比另一个更好?

4

1 回答 1

1

这将允许将类型表示为类并在运行时添加。在此处输入图像描述

您还可以有一个 ResourceFactory 来决定在运行时制作哪个资源。然后您可以使用工厂获取资源对象以传递给 addResource()。

这种设计的好处是 ResourceManager 与其管理的特定资源类型解耦。要添加新的资源类型,只需添加一个新类并更新工厂类。

于 2015-11-14T23:19:31.357 回答