gpt4 book ai didi

.net - 从依赖项中获取依赖项

转载 作者:行者123 更新时间:2023-12-04 18:14:48 24 4
gpt4 key购买 nike

假设我有一个 宠物管理员 :

class PetManager
{
PetManager(IBusinessLayer businessLayer, IWashingService washingService);

IBusinessLayer BusinessLayer;

IWashingService WashingService;
}

class Cat
{
Cat(PetManager manager, string name, int levelOfStupidity);
}

现在假设我的猫需要清洗服务,从我的宠物经理那里获得依赖会不会太糟糕了?
class Cat
{
Cat(PetManager manager, string name, int levelOfStupidity)
{
this.manager = manager;
this.name = name;
this.levelOfStupidity = levelOfStupidity;
}

IWashingService WashingService
{
get { return this.manager.WashingService; }
}
}

我强烈怀疑是的,它会是......

最佳答案

如前所述,Cat 是一个具体的类,因此它可以公开任何有意义的内容。将构造函数参数公开为只读属性是一件非常明智的事情。

但是,如果 Cat 实现了 ICat,我强烈怀疑通过 ICat 暴露像 PetManager 这样的依赖项将是 。泄漏抽象 .

本质上,interfaces serve as a sort of access modifier .暴露对具体类的依赖关系是有意义的,而不是在接口(interface)上。依赖项是通过构造函数注入(inject)的,因此永远不能成为接口(interface)的一部分——构造函数签名是我们的自由度。

关于.net - 从依赖项中获取依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5792019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com