当前位置: 首页 > news >正文

html5企业网站模板/宁德市自然资源局

html5企业网站模板,宁德市自然资源局,深圳市有哪些公司,美橙建站靠谱吗里氏替换及依赖倒置 class Zoo {constructor () {}open () {//我要提前准备好多小动物,并设置好每个小动物的名字及它们的表演节目let cat new Cat(猫)console.log(cat.catName cat.canJump());let dog new Dog(狗)console.log(dog.dogName dog.canSing());} }c…

里氏替换及依赖倒置

class Zoo {constructor () {}open () {//我要提前准备好多小动物,并设置好每个小动物的名字及它们的表演节目let cat = new Cat('猫')console.log(cat.catName + cat.canJump());let dog = new Dog('狗')console.log(dog.dogName + dog.canSing());}
}class Cat {constructor (name) {this.catName = name;}canJump () {return '能跳'}
}
class Dog {constructor (name) {this.dogName = name;}canSing () {return '能唱'}
}let zoo  = new Zoo();
zoo.open();

每个小动物都是那么的独特,我要记住他们所有的名字和行为,如果他们的名字和行为发生变化的时候,我就要去修改open方法, 如果来的新的小动物,我还得修改open。

如果我能发出口令“name”,他们就能爆出各自的名字,口令“show” 他们就能表演多好啊, 我要去训练他们,

class Zoo {constructor () {}open () {//我要提前准备好多小动物,并设置好每个小动物的名字及它们的表演节目let cat = new Cat('猫')console.log(cat.name + cat.show());let dog = new Dog('狗')console.log(dog.name + dog.show());}
}class Cat {constructor (name) {this.name = name;}show () {return '能跳'}
}
class Dog {constructor (name) {this.name = name;}show () {return '能唱'}
}let zoo  = new Zoo();
zoo.open();

嗯, 好多了, 我不用记住它们独特的名字和行为了,我为他们定义了统一的标准,要求他们听到name就返回名字,听到show就表演行为

我总结出了一个规律,所有带name属性,有show方法的动物都能来动物园,所以我只需要为所有的动物指定一个标准就行了,然后让所有的动物都能遵守它。

class Zoo {constructor () {}open (...animals) {//我要提前准备好多小动物,并设置好每个小动物的名字及它们的表演节目for(let animal of animals) {if (animal instanceof Animal) {console.log(animal.name, animal.show())} else {console.log('你不听我的话,我不要你')}}}
}class Animal {constructor (name) {this.name = name;}show () {}
}
class Cat extends Animal{constructor (name) {super(name)}show () {return '能跳'}
}
class Dog extends Animal{constructor (name) {super(name)}show () {return '能唱'}
}let zoo  = new Zoo();
zoo.open(new Cat('猫'), new Dog('狗'));

我指定的标准就是Animal, 它就是一个抽象, 我在动物园的open中不在依赖Cat/Dog而是依赖Animal,这就是依赖倒置,而Cat/Dog对于show方法的实现就是里氏替换

 

转载于:https://www.cnblogs.com/pandapeter/p/10441365.html

http://www.jmfq.cn/news/5023297.html

相关文章:

  • 电子商务网站建设理论依据/百度网站怎么提升排名
  • 郑州电商网站建设/高端网站建设制作
  • 网站后台管理系统制作软件/今日国际新闻最新消息十条
  • 自己做电影网站需要什么/seo排名哪家正规
  • 西宁网站建设的公司/网络营销专业的就业方向
  • 河南专业网站建设公司/百度95099如何转人工
  • 上海企乐网站制作公司/百度账号登录不了
  • 网站建设是做什么的/百度问答首页
  • 北辰做网站公司/关键词搜索排名优化
  • 定制网站需要多少钱/seo1短视频网页入口营销
  • 手机端设计/网站seo视频狼雨seo教程
  • 国外做项目的网站/各大网站域名大全
  • 西安网红/seo深度优化公司
  • app开发一定要有公司吗/googleseo优化
  • 表格如何给网站做链接/网站自助建站系统
  • 长宁网站设计/谷歌seo优化怎么做
  • 网站制作要用哪些软件/seo工资
  • 为什么自己做的网站别的电脑打不开/关键词seo服务
  • 做网站要具备些什么/核心关键词和长尾关键词举例
  • 福建省住房和城乡建设局网站/西安疫情最新数据消息中高风险地区
  • 网站建设服务器维护内容/站长统计幸福宝下载
  • 网站悬浮二维码/seo网站查询
  • 怎么增加网站收录/洛阳seo外包公司费用
  • 自己想做网站/sem百度竞价推广
  • 怎样登录柳州建设网站/百度小程序对网站seo
  • 做废旧哪个网站好/企业整站优化
  • 长春电商网站建设/小米口碑营销案例
  • 如何使用axure做网站/百度经验怎么赚钱
  • 济南免费做网站/最新疫情消息
  • 网站建设怎样回答客户问题/链接购买