gpt4 book ai didi

c# - 如何为基类创建可选类型注入(inject)?

转载 作者:太空宇宙 更新时间:2023-11-03 15:43:09 25 4
gpt4 key购买 nike

在常规敏捷编程技术类(class)中,我经常进行大量重构。如果我发现共同点,它们就是基类的候选对象。假设此代码模式:

public Subclass : BaseClass{
private dynamic SomeValue = null;
public Subclass(){
SomeValue = BaseClass.Method<T>();
}
}

一切正常,直到我厌倦了不断地将类型注入(inject)方法。为什么不将类型注入(inject)基类呢?但是等一下,我不想重做 20 个已经使用上面这个模式的类。现在我有两种可以使用的潜在模式,这是第二种。

public Subclass : BaseClass<T>{
private T SomeValue = null;
public Subclass(){
SomeValue = BaseClass.Method();
}
}

第二个模式可能是第一个示例的逻辑推导,我们只是将类型移动到类 CTOR 而不是在每个方法中使用泛型类型。

我想询问社区他们对如何在不更改任何当前代码但添加对泛型类型基类模式的支持的情况下完成这两种构造的想法。

最佳答案

再一次,四人帮是对的“更喜欢组合而不是继承”。在这种情况下,术语 BaseClass 可能不合适,但您可以看到我们的基类概念在一开始是错误的,因为您没有真正问“这真的是一个基类吗?”

public Subclass {
private BaseClass bc1 = null;
private BaseClass<SomeType> bc2 = null;
private dynamic SomeValue = null;
public Subclass(){
//I still have base class operation ability, but now...
bc2 = new BaseClass<SomeType>();
SomeValue = bc2.Method();
}

关于c# - 如何为基类创建可选类型注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29390076/

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