首页 > 解决方案 > 在构造可能包含其他类对象列表的类对象时使用依赖注入

问题描述

我试图通过在类构造函数中使用依赖注入来减少我的应用程序中的耦合。我在思考如何使用包含其他复杂类对象列表的类时遇到问题,这些类对象在构造新对象时可能未定义。

这是一个例子:我有一个 Person 类。该人员类具有作为属性的类对象列表(衣服、武器、宠物、车辆)。person 类在建造时可能没有衣服、武器、宠物或车辆,但可能会在以后获得它们。如果我在 person 类中创建构造新 Clothes、Weapons、Pets 或 Vehicles 的方法,这将使我的 Person 类与其他类紧密耦合。即使我使用工厂来构造这些对象,在 Person 方法中调用构造类对象的工厂方法仍然会将我的 Person 类耦合到其他类。

我已经对接口和工厂进行了修改,但似乎如果 Person 方法导致构造 Clothes、Weapons、Pets 或 Vehicles 类对象,则 Person 现在与该类耦合。

关于这种情况,我有几个问题。

  1. 为了方便维护它们之间的关系,让一个类包含其他复杂类对象的列表是不好的设计吗?
  2. 有没有办法在保持耦合松散的同时保持这些项目之间的关系?
  3. 在这种情况下,我是否过于强调耦合?在这种情况下解耦这些类实际上很重要,还是我想多了?

标签: c#

解决方案


推荐阅读