【发布时间】:2011-07-28 14:54:03
【问题描述】:
我对一些架构方法非常感兴趣。我喜欢DI和IOC,但是我不懂costructor注入;为什么这么复杂。我已经编写了下面使用构造函数注入的代码:
namespace DependencyInjection
{
class Program
{
static void Main(string[] args)
{
ConstructorInjectionClass myCtx = new ConstructorInjectionClass(new PdfFormat());
myCtx.Print();
Console.Read();
}
}
public interface IFormat
{
void Print();
}
public class PdfFormat : IFormat
{
public void Print()
{
Console.WriteLine("Pdf Format Print is completed...");
}
}
// Constructor Injection
public class ConstructorInjectionClass
{
private IFormat _format;
public ConstructorInjectionClass(IFormat format)
{
_format = format;
}
public void Print()
{
_format.Print();
}
}
我在下面写了一些代码。我觉得很简单。
public interface IFormat
{
void Print();
}
public class PdfFormat : IFormat
{
public void Print()
{
Console.WriteLine("Pdf Format Print is completed...");
}
}
public interface ISave
{
void Add();
}
public class Sql: ISave
{
public void Add()
{
Console.WriteLine("Adding to SQL is completed...");
}
}
// Constructor Injection
public class ConstructorInjectionClass
{
public ConstructorInjectionClass(IFormat format)
{
format.Print();
}
public ConstructorInjectionClass(ISave saver)
{
saver.Add();
}
为什么要使用构造函数注入?这两种方法的优缺点?
【问题讨论】:
-
第二种方法的缺点是没有意义。我没有看到这两个构造函数的意义。
-
我只看到一种方法?另一个是什么?
标签: c# .net oop design-patterns architecture