.net – 从依赖项中获取依赖项
发布时间:2020-12-14 04:53:14 所属栏目:百科 来源:网络整理
导读:假设我有一个PetManager和一只猫: class PetManager{ PetManager(IBusinessLayer businessLayer,IWashingService washingService); IBusinessLayer BusinessLayer; IWashingService WashingService;}class Cat{ Cat(PetManager manager,string name,int lev
假设我有一个PetManager和一只猫:
class PetManager { PetManager(IBusinessLayer businessLayer,IWashingService washingService); IBusinessLayer BusinessLayer; IWashingService WashingService; } class Cat { Cat(PetManager manager,string name,int levelOfStupidity); } 现在让我们说我的猫需要洗涤服务,是否会如此baaaaad,以获得我的宠物经理的依赖? class Cat { Cat(PetManager manager,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.在具体类上公开依赖是有意义的,但在接口上却没有.依赖关系是通过构造函数注入的,因此永远不能成为接口的一部分 – 构造函数签名是我们的自由度. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |