0
私はインターフェイスを使用してデモ実装を行っている:C#のインターフェースの利点は何ですか
class Program
{
static void Main(string[] args)
{
#region Calling method without interface
GreaterThanZeroTest objGreaterThanZeroTest = new GreaterThanZeroTest { SomeTestVariable = 10 };
Console.WriteLine(objGreaterThanZeroTest.SomeTestMethod().ToString());
LessThanZeroTest objLessThanZeroTest = new LessThanZeroTest { SomeTestVariable = -1 };
Console.WriteLine(objLessThanZeroTest.SomeTestMethod().ToString());
#endregion
#region Calling using interface
runTest(new GreaterThanZeroTest() { SomeTestVariable = 10 });
runTest(new LessThanZeroTest() { SomeTestVariable = 10 });
#endregion
Console.ReadKey();
}
public static bool runTest(ITest test)
{
return test.SomeTestMethod();
}
}
public interface ITest
{
int SomeTestVariable { get; set; }
bool SomeTestMethod();
}
// Determines whether an int is greater than zero
public class GreaterThanZeroTest : ITest
{
public int SomeTestVariable { get; set; }
public bool SomeTestMethod()
{
return SomeTestVariable > 0;
}
}
// Determines whether an int is less than zero
public class LessThanZeroTest : ITest
{
public int SomeTestVariable { get; set; }
public bool SomeTestMethod()
{
return SomeTestVariable < 0;
}
}
私は上記の実装から2恩恵を参照してください。
- コードがきれいに見えます。
- 1行のコードを保存します。
このような実装から得られる他のメリットと、アプリケーションアーキテクチャのインターフェイスを考慮する必要があるときは何ですか?
契約が重要なものです宇宙での理由はたくさんあります「制御の反転」の実現を可能にするかのIoCフラグのために。多くの記事でこれらの項目を見つけることができました。 –
依存性注入について読むことができます – Jacky
この投稿をチェックしてくださいhttps://stackoverflow.com/questions/1389434/benefits-of-implementing-an-interface – adinell