依赖倒置原则

来源:互联网 发布:网络平台名誉侵权案例 编辑:程序博客网 时间:2024/05/04 06:27
依赖倒置原则

依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。百度百科

为什么会出现这个原则呢?
QTMD~!
所有的一切都源于变化,现在ORM足够强大了,看一下他的源码也会发现,工厂、接口的使用都是为了更好的扩展。


举个简单的例子
你的老师让你写了一个“猪”类,实现了他的移动方法,代码如下

    public class Pig{        public void Move(){            console.write("在田野间奔跑");        }    }    public class Client{        public void Main(Pig p){                        p.Move();//output 在田野间奔跑        }           }

第二天你上交了作业,老师看见点点头,做的好(鬼知道是在夸你还是在说反话),现在你在给我写一个“大雁”,“鱼”类,并且实现Move方法。
当然你看到这个觉得都是小事一桩,你开始Copy Pig类,之后你发现你的客户端只认识Pig类,如果要调用其他的那么需要修改Client,这就违反了开放关闭原则,那么怎么办呢?
改变Client的依赖,不再依赖Pig,而是依赖接口,依赖抽象类。


那么我们修改一下这个代码:

interface IAnimal {    Move();}public class Pig:IAnimal {        public void Move(){            console.write("在田野间奔跑");        }    }public class Fish:IAnimal {        public void Move(){            console.write("在大海里畅游");        }    }public class Client{        public void Main(IAnimal a){                        a.Move();//output 取决于实现类的实现方法        }           }

这就OK啦~!

ps:依赖倒置原则重点在与依赖,先不要喷,针对这样的接口抽象的概念很多,但是通过这个栗子我们能够看到,重点在于处理依赖对象的思想。

0 0
原创粉丝点击