晚上好,我在一个中型项目中第一次尝试用 DI 实现 SOLID 原理。大多数时候我都明白,但现在我遇到了麻烦。让我举一个糟糕的例子,但它显示了应用程序的结构。我继承了具有不同构造函数的类(下面提供的代码)。当我需要一个实例时,我知道我需要的类。因此,关于此代码的 2 个问题:1/在这种情况下我是否必须使用接口来实现 SOLID 原理(或者只是在 Program.cs 中声明 ClassA 的实例,如 ClassA example=new ClassA("text"))2/做得好吗?(什么是好的/什么是坏的,应该做什么/应该避免什么?)
class Program
{
static void Main(string[] args)
{
IFactory exemple = new Factory();
//With Unity--> exemple=Resolve<IFactory>();
exemple.GetTextClassA("test");
exemple.GetTextClassB(1);
Console.ReadLine();
}
}
public interface IFactory
{
ClassA GetTextClassA(string text);
ClassB GetTextClassB(int text);
}
public class Factory : IFactory
{
public ClassA GetTextClassA(string text)
{
return new ClassA(text);
}
public ClassB GetTextClassB(int text)
{
return new ClassB(text);
}
}
public abstract class MainClass
{
private string _text;
public MainClass(){}
protected abstract string GetText();
protected virtual void Initialize()
{
_text = GetText();
Console.WriteLine(_text);
}
public string TextToDisplay
{
get { return _text; }
}
}
public class ClassA : MainClass
{
string _textA;
public ClassA(string textParam)
{
_textA = textParam;
base.Initialize();
}
protected override string GetText()
{
return "Text is :"+_textA;
}
}
public class ClassB : MainClass
{
int _numParam;
public ClassB(int numParam)
{
_numParam = numParam;
base.Initialize();
}
protected override string GetText()
{
return "Text is :" + _numParam.ToString();
}
}
非常感谢您的评论。