2017-09-06 6 views
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. コードがきれいに見えます。
  2. 1行のコードを保存します。

このような実装から得られる他のメリットと、アプリケーションアーキテクチャのインターフェイスを考慮する必要があるときは何ですか?

+0

契約が重要なものです宇宙での理由はたくさんあります「制御の反転」の実現を可能にするかのIoCフラグのために。多くの記事でこれらの項目を見つけることができました。 –

+0

依存性注入について読むことができます – Jacky

+0

この投稿をチェックしてくださいhttps://stackoverflow.com/questions/1389434/benefits-of-implementing-an-interface – adinell

答えて

0

IMHO、私にとって最も重要なことは、それはあなた

  1. にモックユニットテストの目的のためにいくつかの機能を可能にします。
  2. それは申し訳ありません...

はあなただけかかわらず、それを検索することができますが、これらは私が考える

関連する問題