c# - 在构造可能包含其他类对象列表的类对象时使用依赖注入
问题描述
我试图通过在类构造函数中使用依赖注入来减少我的应用程序中的耦合。我在思考如何使用包含其他复杂类对象列表的类时遇到问题,这些类对象在构造新对象时可能未定义。
这是一个例子:我有一个 Person 类。该人员类具有作为属性的类对象列表(衣服、武器、宠物、车辆)。person 类在建造时可能没有衣服、武器、宠物或车辆,但可能会在以后获得它们。如果我在 person 类中创建构造新 Clothes、Weapons、Pets 或 Vehicles 的方法,这将使我的 Person 类与其他类紧密耦合。即使我使用工厂来构造这些对象,在 Person 方法中调用构造类对象的工厂方法仍然会将我的 Person 类耦合到其他类。
我已经对接口和工厂进行了修改,但似乎如果 Person 方法导致构造 Clothes、Weapons、Pets 或 Vehicles 类对象,则 Person 现在与该类耦合。
关于这种情况,我有几个问题。
- 为了方便维护它们之间的关系,让一个类包含其他复杂类对象的列表是不好的设计吗?
- 有没有办法在保持耦合松散的同时保持这些项目之间的关系?
- 在这种情况下,我是否过于强调耦合?在这种情况下解耦这些类实际上很重要,还是我想多了?
解决方案
推荐阅读
- asp.net-core - 从 Json.Net 移动到 System.Text.Json 后,属性未显示在招摇请求中
- python - 获取图轴的基数
- php - Wordpress - 作为搜索结果显示某个类别的帖子 - 存档页面
- python - 在 on_delete=models.PROTECT 的情况下如何删除子模型数据?
- tcp - JMeter:如何处理 Jmeter TCP 示例请求中的控制字符
- nginx - 在使用 nginx 输入有效的验证码之前,我可以让用户保持在错误页面中吗?
- python - 如果字符仅出现在开头,则替换它
- javascript - 如何让浏览器知道网站有搜索引擎
- url - 单页应用中多个 URL 的作用是什么?
- node.js - 尝试在 Heroku 上运行 Node.js Express MongoDB 应用程序时出现 H12 错误