定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。(百科全书)
这个定义什么意思,太专业 感觉不像人话。。
什么叫高层模块,什么叫底层模块,什么叫抽象,什么叫细节,来画图
上边这个图是遵守了依赖倒置的,再放一个不遵守的
抽象说白了就是对于细节而言比如说
交通工具是抽象,而公交车、单车、火车等就是细节了 也叫具象,当人和你说把我的交通工具拿过来,你可能在想什么交通工具,所以说
抽象就是你只知道一个概念,但是你不知道他具体是什么
细节呢,就是具体实现他对应的抽象的那么一个实例 下边放代码
// 吃的抽象类
class eat {
go() {
console.log("吃了一个什么")
}
}
//实现类(细节)
class apple extends eat {
go() {
return "吃了一个苹果"
}
}
class banana extends eat {
go() {
return "吃了一个香蕉"
}
}
class bigApple extends eat {
go() {
return "吃了十个苹果"
}
}
//人类
class people {
constructor(name) {
this.name = name
}
gotoEat(food) {
console.log(this.name, food.go())
}
}
apple = new apple
banana = new banana
bigApple = new bigApple
peopleA = new people("小明")
peopleB = new people("很饿的大明")
peopleA.gotoEat(apple)
peopleA.gotoEat(banana)
peopleB.gotoEat(bigApple)
个人认为如果没有遵守依赖倒置原则的话 那么必然没有遵守开闭原则,后果就是代码耦合严重,不易维护。
以上如果有讲的不对或不足之处,请大家批评指正
原文地址:https://www.cnblogs.com/netUserAdd/p/10436694.html
分享一些和设计师成为好朋友的个人经验,注意,这些经验技巧只适用于技术开发人员。如果有事情找设计师商量,千万不要站在设计师的背后
好的设计能够帮助企业提升数据,同时还可以提供用户一个良好的使用体验。不过今天讨论的重点并不是付费报告,而是这69条设计原则。
新手Web设计师和开发人员往往以有缺陷的创作而告终,却不知道真正的故障出自于哪里。虽说有这么多的设计书籍,但即使都读了,也不会对最后的设计有任何意义。在第一个原型中创建一个无缝的设计真的是一个挑战——事实上,只是做好单个部分就是一个难点。
模式化的设计套路之所以为广大网页设计师所喜爱,很大程度上是因为它们具备有良好的可用性和可访问性,在转化率和用户留存率上有着不错的数据表现。但是这些通过数据来体现的设计模式,在用户的视角里,可能并不那么理想。
我们从工程上的精确和准确来引申我们的概念。测量一段距离的长度,得到结果是0.34米,我们可以提高测量的水平,得到一个更好的结果,比如0.342377946米。后者比前者具有更高的精确度(或者简称精度)。我们说后者比前者更“精确”
这篇文章是关于Javascript的面向对象的程序设计,主要从三个方面来介绍,1. 理解对象属性; 2. 理解并创建对象; 3. 理解继承
如果你是一名设计师,你的电脑上可能存储了很多的设计网站,但是对于一些新手小白来说,刚接触设计的时候应该怎样进行绘制呢?难道要自己去一笔一笔的进行绘制吗?下面给大家分享几个设计网站
用户获取是确定网站成功的核心指标,没有活跃的用户会花费大量资金投入,在获得用户之后,网参与和保留是两个指标,可真实地洞察网站的成功,较低的网站参与度和保留率是导致网站失败的一个因素,而高度参与和保留则相反
初次接触或者想要进入网页设计行业的朋友会经常分不清楚web前端与网页设计之间的区别,不知道网页设计要学什么,web前端要学什么,因此感到很迷茫?
其实Material Design的扁平化icon按钮,这类型的按钮往往只利用几何色块的变化,就能抓住使用者的眼光,并且从几何形状中明白按钮的含意,这也是Material Design非常强调的设计理念和精髓。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!