說我有一個類庫,這樣的引用:在類庫執行代碼時,你不必到類庫
using ClassLibrary2;
namespace ClassLibrary1
{
public class Class1 : IClass1
{
public string SayHello()
{
return "Hello";
}
}
}
和類庫是這樣的:
namespace ClassLibrary2
{
public interface IClass1
{
string SayHello();
}
public class Class3
{
IClass1 _class1;
public Class3(IClass1 class1)
{
_class1 = class1;
string test = _class1.SayHello();
}
}
}
和一個這樣的程序:
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
IClass1 class1 = new Class1();
Class3 class3 = new Class3(class1);
}
}
}
ClassLibrary1 references ClassLibrary2。 WindowsFormsApplication1引用ClassLibrary1和ClassLibrary2。
程序結束。即使ClassLibrary2不引用ClassLibrary1,ClassLibrary2也能夠從ClassLibrary1執行代碼。這種技術叫做什麼?我想了解更多信息並使用它。我意識到它是多態的。我指的是在沒有依賴性的情況下在類庫中執行代碼的技術。
謝謝。我認爲依賴倒置是很好的做法。什麼是classlibrary12635? +1用於SOLID參考。 – w0051977
'classlibrary12635'只是另一個可以存在的類庫,或者你可以寫或可能出現的類庫,它恰好也實現了'IClass1'接口。重點在於ClassLibrary3不管它是ClassLibrary1,classlibrary12635還是實現IClass1的「somethirdpartylibrary」,只要它工作。 – oerkelens