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());
            }
        }
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值