Principle Of Dependence Inversion(依賴倒置原則)

(一)依賴倒置原則的定義

高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象,抽象不應該依賴細節,細節不應該依賴抽象。精髓思想:要面向接口編程,不要面向實現編程(依賴倒置原則是實現開閉原則的重要途徑之一,它降低了客戶與實現模塊之間的耦合

例如:

DBHelp,裏面含有連接數據庫的方法,包括增刪改查等等一系列的方法,而DBHelp類就是一個抽象,它就是一個接口編程,而連接DBHelp類的方法,就是一個實現編程。就達到了依賴倒置原則的原始定義。

(二)依賴倒置原則的作用

  1. 降低類之間的耦合性
  2. 提高系統穩定性
  3. 減少並行開發引起的風險
  4. 提高代碼的可讀性和可維護性

(三)依賴倒置原則的實現方法

依賴倒置原則的目的就是通過面向接口編程降低類之間的耦合性,要想充分的發揮依賴倒置原則,則滿足如下4個原則方可。

  1. 每個類儘量提供接口或者是抽象類,如兩者都能滿足則更好
  2. 變量聲明類型儘量是接口或者是抽象類
  3. 任何類都不應該從具體類派生
  4. 使用繼承時遵循里氏替換原則

(四)代碼案例解析

using System;

namespace Design_Pattern
{
    class Program
    {
        static void Main(string[] args)
        {
            Customer customer = new Customer();
            Console.WriteLine("顧客購買如下商品:");
            customer.Shop(new Xiaomi());
            customer.Shop(new Huawei());
        }

        /// <summary>
        /// 淘寶網接口
        /// </summary>
        public interface Taobao
        {
            String sell();
        }

        /// <summary>
        /// 小米商城
        /// </summary>
        public class Xiaomi : Taobao
        {
            public String sell()
            {
                return "所有的小米商品";
            }
        }

        /// <summary>
        /// 華爲商城
        /// </summary>
        public class Huawei : Taobao
        {
            public String sell()
            {
                return "所有的華爲商品";
            }
        }

        /// <summary>
        /// 顧客
        /// </summary>
        public class Customer
        {
            public void Shop(Taobao taobao)
            {
                Console.WriteLine(taobao.sell());
            }
        }
    }
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章