Design

Design
asp.net mvc

2017年5月19日 星期五

Interface C#

以往我們寫code總是會這樣 new一個新的物件 直接依賴但是當我們在較複雜的架構時,我們就需要一直去重構方法
 
class Program
{
    static void Main(string[] args)
    {
         Dosomething do = new Dosomething();
          do.Write("Hello World");
    }
}
  
class Dosomething
{
    public void Write(string msg)
    {
        Console.WriteLine(msg);
    }
}

後續衍伸出interface 定義個實作的介面 我們是先定義好實作 後續才是去針對判斷去new 出我們想實作的辦法 這樣好處是程式更有規範更方便理解,統一 一個接口方法最後看你想實作哪個部分
 
  class Program
    {
       
        static void Main(string[] args)
        {
            ICooking cooking;
            //我決定要做三杯雞 來吧!
            var food = "三杯雞";
            if (food == "三杯雞")
            {
                cooking = new FoodService();
                Console.WriteLine(cooking.Make());
            }
            else {
                cooking = new DrinkService();
                Console.WriteLine(cooking.Make());
            }
            Console.Read();
        }

    }

    interface ICooking
    {
        string Make();
    }

    class FoodService : ICooking
    {
        public string Make()
        {

            return "紅燒牛肉";
        }
    }

    class DrinkService : ICooking
    {
        public string Make()
        {
            return "珍珠奶茶";
        }
    }

沒有留言:

張貼留言