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());
            }
        }
    }
}
发布了122 篇原创文章 · 获赞 36 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qqj3066574300/article/details/103867370