【发布时间】:2017-01-24 03:53:41
【问题描述】:
假设类PersonList 有方法AddNewPerson(),它创建一个新的Person 并将其添加到内部列表中。但是,Person 的构造函数需要几个参数(主要是它所依赖的接口)。这意味着PersonList 还需要将这些参数传递给 其 构造函数(或以某种方式使其可用)。
这种安排似乎有点代码味道,因为PersonList 不直接使用任何这些依赖项。它只是将它们传递给另一个构造函数。我如何重构这些类,以便清楚每个类的真正依赖关系是什么?
【问题讨论】:
-
请显示一些代码(至少概述类的外观)。 PersonList 听起来像 DTO 或模型,而不是服务,所以听起来它不应该有依赖关系(这意味着你在正确的轨道上)。但是,当我们真的不知道我们在处理什么时,不太可能有人告诉你“如何重构它”。
-
@NightOwl888 我简化了问题以达到问题的本质,但我可能过于简化了。在我的实际案例中,这些类是 MVVM 应用程序的视图模型。
PersonListViewModel有一个AddCommand,该AddCommand被中继到创建和添加新PersonViewModel的方法。
标签: oop dependency-injection constructor refactoring