位置: 编程技术 - 正文

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

  • 企业所得税年报怎么查询
  • 递延所得税如何影响所得税费用
  • 外贸企业申报退税流程
  • 公司车辆过户给个人车牌可以保留吗
  • 个人所得劳务报酬税率
  • 转出多交增值税和转出未交增值税怎么理解
  • 配件销售过程中有什么注意事项
  • 公司入股资金有发票吗
  • 开票系统里红字发票怎么开
  • 销售大型设备的税率
  • 会计核算制度的案例
  • 销售自己使用过的物品免税吗
  • 销售蔬菜的个体工商怎么开具发票
  • 去年发生的成本但今年9月份才开票付款
  • 以货换货违法吗
  • 出差出了事故怎么处理
  • 单位聘请的临时工请假旅游
  • 企业店铺开发票可以要求补税点吗?
  • 企业所得税报表模板
  • 销售赠品怎么入账
  • 简述房地产开发企业设立的特殊规定
  • 筹建期水电费计入什么科目
  • 租金和物业费怎么计算
  • 公司给员工定任务合法吗
  • 调整以前年度损益调整汇算清缴
  • 税控盘的抵扣怎么填
  • 两地取得工资个税怎么交
  • 银行承兑汇票质押率90%
  • 刚注册的有限公司可以马上注销吗
  • 购入已提足折旧的固定资产
  • 白醋洗脸有什么好处
  • won10字体变大
  • redis使用php
  • 劳务费要申报个税吗怎么申报
  • php+mysql项目实战教程
  • win7如何更换开机密码
  • 递延所得税资产账务处理
  • PHP:Memcached::setByKey()的用法_Memcached类
  • 结转结余会计分录
  • 酒店加盟管理费多少
  • 委托银行收款的会计分录怎么写
  • 原始凭证一般没有
  • css 3有哪些新特性
  • 金融企业往来支出是一级科目吗
  • 工会经费计提的比例
  • 预存5000送2000什么套路
  • 一般纳税人超过多少要交税
  • 民办学校学费收现金
  • 一般纳税人公司出售旧车怎么开票
  • 房产税的征收范围和标准有哪些
  • 会计的借记和贷记什么意思
  • 购买旧固定资产入账
  • 企业所得税汇算清缴时间
  • 哪些公司可以开电费发票
  • 一般纳税人金税盘怎么清卡
  • 个体工商户经营所得税核定征收
  • 零申报公司注销流程
  • 销售退回的会计分录全过程
  • 普票丢失可以以照片入账么
  • 手工帐如何结转成本费用
  • 年限平均法计提折旧怎么算
  • 简述工作底稿的一般要求及内容
  • sql查询字段被包含的内容
  • mysql中的where子句
  • Win10预览版怎么变回正式版
  • 如何在macbook中设置软件权限
  • winxp和win7双系统安装
  • win10如何更换
  • linux sendmail发送邮件
  • linux常用命令chmod的使用
  • 多个版本python
  • 安卓演示模式有什么用
  • shell脚本-lt
  • 使用BMFont+NGUI利用图片制作自定义字体
  • 简单的移动端项目
  • 如何计算增值税税负率公式
  • 电子税务局税务数字证书登录
  • 调查问卷的背景资料怎么写
  • 车船税是比例还是定额
  • 地税局工作人员工资标准多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设