位置: 编程技术 - 正文

深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解(深入理解中国式现代化)

编辑:rootadmin

推荐整理分享深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解(深入理解中国式现代化),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:深入理解linux内核第三版,深入理解linux内核第三版,深入理解中国式现代化,深入理解中国式现代化,深入理解javascript特性.pdf,深入理解新发展理念,推进供给侧结构性改革,深入理解计算机系统,深入理解javascript特性,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第4篇,接口隔离原则ISP(The Interface Segregation Principle)。

英文原文: Patterns ? Elements of Reusable Object-Oriented Software一书中我们找到了接口的定义: 的时候,它仅仅需要rectangle的area()方法,但它却违反了LSP(因为他根本用不到其中drawRectangles方法才能用到的draw方法)。

静态耦合

静态类型语言里的另外一个导致违反ISP的原因是静态耦合,在静态类型语言里,接口在一个松耦合设计程序里扮演了重大角色。不管是在动态语言还是在静态语言,有时候一个对象都可能需要在多个客户端用户进行通信(比如共享状态),对静态类型语言,最好的解决方案是使用Role Interfaces,它允许用户和该对象进行交互(而该对象可能需要在多个角色)作为它的实现来对用户和无关的行为进行解耦。在JavaScript里就没有这种问题了,因为对象都被动态语言所特有的优点进行解耦了。

深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解(深入理解中国式现代化)

语义耦合

导致违反ISP的一个通用原因,动态语言和静态类型语言都有,那就是语义耦合,所谓语义耦合就是互相依赖,也就是一个对象的行为依赖于另外一个对象,那就意味着,如果一个用户改变了其中一个行为,很有可能会影响另外一个使用用户。这也违反单一职责原则了。可以通过继承和对象替代来解决这个问题。

可扩展性

另外一个导致问题的原因是关于可扩展性,很多人在举例的时候都会举关于callback的例子用来展示可扩展性(比如ajax里成功以后的回调设置)。如果想这样的接口需要一个实现并且这个实现的对象里有很多熟悉或方法的话,ISP就会变得很重要了,也就是说当一个接口interface变成了一个需求实现很多方法的时候,他的实现将会变得异常复杂,而且有可能导致这些接口承担一个没有粘性的职责,这就是我们经常提到的胖接口。

总结

JavaScript里的动态语言特性,使得我们实现非粘性接口的影响力比静态类型语言小,但接口隔离原则在JavaScript程序设计模式里依然有它发挥作用的地方。

PHP 数组current和next用法分享 1.currentphp$transport=array('foot','bike','car','plane');$mode=current($transport);//$mode='foot';$mode=next($transport);//$mode='bike';$mode=current($transport);//$mode='bike';$mode=prev($transport)

PHP守护进程实例 php也是可以直接进行守护进程的启动与终止的,相对于shell来说会简单很多,理解更方便,当然了php的守护进程要实现自动重启还是要依赖于shell的crontab

Shell脚本实现Linux系统和进程资源监控 在服务器运维过程中,经常需要对服务器的各种资源进行监控,例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出现异常时及

标签: 深入理解中国式现代化

本文链接地址:https://www.jiuchutong.com/biancheng/382882.html 转载请保留说明!

上一篇:深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解(深入理解新发展理念)

下一篇:PHP 数组current和next用法分享(php7 数组)

  • 印花税的计税方法
  • 小规模纳税人应交增值税明细科目
  • 劳务外包人员在本公司可报销吗
  • 查询不到已经上市的股票
  • 非盈利组织减免的增值税怎么做账
  • 酒店购买的空调折旧计入管理费用吗
  • 营业执照经营范围劳务怎么写
  • 母子公司借款要交什么税
  • 承兑汇票给别人时对方需要出具什么
  • 增值税发票在邮寄途中丢了怎么办
  • 职工退休金计入个人账户
  • 个人开技术服务费税率是多少
  • 预收电费结转成本怎么办
  • 企业成立股东没有实际出资分录怎么写?
  • 股权投资损失该如何做账务处理及税前扣除相关规定
  • 增资需要登报吗
  • 土地增值税预缴税率
  • 提成工资可以扣发吗?
  • 没有成本票如何做账
  • 年所得12万以下还用年度申报吗
  • 残疾人不用交医保社保
  • 其他权益工具通俗
  • 跨地区经营汇总纳税企业所得税
  • 付货款时从货款中扣除的返利怎样做账?
  • 一般纳税人认定管理办法
  • 其他债权投资期末公允价值的变动应当计入
  • 局域网解决方案
  • 生产成本结转库存商品的数量
  • php获取文件扩展内容
  • 企业租房租金怎么核算
  • 投资性房地产转换日公允价值大于账面价值
  • windows 平台
  • win10默认网关不可用总掉线解决方法
  • 卷曲的蕨菜叶怎么吃
  • php获取文本内容
  • LNMP部署laravel以及xhprof安装使用教程
  • vue导出word文档打开报错,内容有问题
  • 基本户可以公对私吗
  • 增值税附加税必须交吗
  • 累计摊销属于什么类科目
  • 企业所得税征前减免是什么意思
  • vue项目更新后还是老代码
  • ChatGPT 能自己跑代码了!
  • dos命令怎么转到d盘
  • python函数的默认值
  • 减资如何弥补亏损
  • 小规模纳税人当月应交增值税怎么算
  • 兼职费用怎么入账报销
  • rabbitmq中文手册
  • 公司对自己内部的要求
  • mysql5.7.32安装
  • 织梦cms为什么不维护了
  • dedecmsv6
  • 建筑业委托加工合同范本
  • mysql索引之间的区别
  • 实际成本法下采购材料的会计分录
  • 广告发票能抵扣吗
  • 社保应该如何缴纳
  • 印花税计入相关资产成本吗
  • 售后服务期多久
  • 收取客户好处算违法吗
  • 分公司需要独立核算和报税吗
  • win2008server安装qq
  • mac怎么打开mac系统
  • 微软surface pro 3按键驱动
  • win7系统开机蓝屏0x0000007b
  • centos6.5破解密码
  • win10 20h2官方下载
  • centos挂载lvm硬盘
  • macbook怎么新建txt文件
  • Win10预览版镜像
  • python2.7安装numpy
  • android webview获取文本
  • jquery自定义插件
  • python字符串中的反斜杠
  • js初级教程
  • 怎么看有没有欠税
  • 纳税人销售免征增值税
  • 陕西税务干部学校副教授李刚简历
  • 深圳国税系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设