面向对象设计原则三:依赖倒置原则

1.定义

高层模块不依赖于低层模块。两者依赖于抽象。

抽象不依赖于细节。

细节依赖于抽象。

 

具体来说,每一个逻辑的实现由原子逻辑组成,不可分割的原子逻辑就是低层模块,原子逻辑的组装就是高层模块。抽象指的是抽象类和接口,不可以实例化;细节指的是实现类,可以实例化。

2.好处

减低类间的耦合性,降低并行开发引起的风险,提高代码的可读性和可维护性。

 

3.如何实现

面向接口编程,尽量实现每一个类都有接口或则抽象类,或者两者兼有。

 static void Main(string[] args)
        {
            //高层模块zhangsan司机,依赖抽象司机
            IDriver zhangsan = new Driver();
            //低层模块奔驰,依赖抽象车
            ICar ben = new Ben();
            //张三开奔驰
            zhangsan.Drive(ben);

            ICar bmw = new BMW();
            //张三开宝马
            zhangsan.Drive(bmw);
        }

        interface IDriver
        {
            //依赖倒置,依赖于抽象车
            void Drive(ICar car);
        }

        public class Driver : IDriver
        {

            public void Drive(ICar car)
            {
                car.Run();
            }
        }
        interface ICar
        {
            void Run();
        }
        public class Ben : ICar
        {

            public void Run()
            {
                Console.WriteLine("奔驰开动");
            }
        }
        public class BMW : ICar
        { 
            public void Run()
            {
                Console.WriteLine("宝马开动");
            }
        }


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值