依赖反转原则(Dependency inversion principle,DIP)。
指的是底层应该依赖于高层,具体应该依赖于抽象,而不是相反。
依赖反转其实并没有反转,而是非常合乎自然的原则。
比如人这个概念比男人女人抽象,所以在设计人的时候还没有男人女人这样的概念。所以人这个对象不应该知道男人女人这样的分类。反过来,男人女人知道自己是人,所以男人女人的概念就依赖于人。这样设计之后,以后知道还有除了男人女人之外的人,就很容易通过扩展加进去,而不是修改人的概念,这样也符合开闭原则。
用单一职责原则解释就是,人这个概念只管做为一个抽象人的共同职责,而继承人的男人女人再管和人的共同职责不重复的,各自不同的职责。
这种具体依赖于抽象,和前面说的开闭原则依赖于单一职责原则也是合拍的,因为后者更抽象。
网友评论