位置: 编程技术 - 正文

深入理解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 数组)

  • 取得的高速公路发票可以抵扣吗
  • 用友t6会计科目在哪里找
  • 费用化的研发支出是否可以加计扣除
  • 新公司成立需要刻哪些章
  • 车辆保险车船税怎么做会计分录
  • 销货清单和送货单的区别
  • 事业单位补发
  • 保本销售量的计算公式用安全边际率
  • 认缴注册资本的风险
  • 应付职工薪酬会产生暂时性差异吗
  • 汇算清缴亏损在后期弥补时怎么做会计处理?
  • 工资扣款的规定
  • 销售利润率如何提高
  • 每月发放奖金的会计分录
  • 应交税费不核算
  • 机动车销售统一票据可以抵扣吗
  • 制造费用可以直接转入本年利润吗
  • 固定资产小于500万一次性扣除政策
  • 资产总额季初和季末
  • 贷款本金余额具体是什么意思
  • 固定资产装修费用计入房产税吗
  • 劳动保护用品应由什么开支
  • 资产减值损失填在资产负债表哪里
  • 计算房产税租金会计分录
  • 物流公司进项票多了,可以帮人开票吗
  • 个体户需要记账嘛
  • 汇算清缴退税计入什么科目
  • 资本性支出计算公式为什么加折旧
  • 文件的类型可以通过什么来区分
  • 专用发票红字发票
  • win11怎么关闭打开软件的弹窗
  • 股权转让交易税计税依据是什么
  • 销售商品售后回购
  • 抵扣农产品进项税时,也要抵扣运费吗
  • macOS Big Sur 11.1 RC预览版(20C69)正式更新
  • 出口零退税率商品目录
  • laravel url重写
  • 供电局销售电力产品
  • 温哥华fdu是什么大学
  • laravel框架用到哪些设计模式
  • vue3响应式对象数组
  • 出租固定资产的租金收入
  • 土增税预征计征依据
  • 新公司不开户需要交税吗
  • 公允价值变动损益影响利润吗
  • 缴纳上月应交未交税费
  • 保险费计入什么科目
  • 纳税申报表期末未缴税额什么意思
  • 公司的商务卡的作用
  • 营改增小规模纳税人可以进行税额扣除
  • 待摊费用和预提费用的区别
  • win7 mysql5.7.21安装
  • mysql查找指定元素的位置
  • 安装硬盘视频教程
  • 安装solaris11
  • 不会安装系统怎么安装
  • linux系统详解
  • vi编辑器的使用
  • win7桌面提示7601
  • Centos 6.4 安装dnsmasq的方法
  • window10隐私常规设置
  • linux系统的安装步骤
  • 蓝牙鼠标不能动了
  • cocos2djs
  • 查找第一个字符
  • jquery trigger实现联动的方法
  • python 编程技巧
  • javascript入门·对象属性方法大总结
  • 一个绿色的球英语怎么读
  • jquery修改表格数据
  • python中函数的功能及作用
  • python讲解
  • 善意取得的条件和效力
  • 深圳零申报怎么报税的具体流程
  • 网上缴费后如何复电
  • 四川地方税务局网址是什么
  • 税务怎么在外网申报
  • 个人所得税超过12万能退税吗
  • 2020江苏省禁钓规定
  • 交医保显示已申报怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设