位置: 编程技术 - 正文

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

  • 如何确定关联方及关联关系
  • 税收实体法有哪18种
  • 外贸出口企业如何申报增值税
  • 车辆商业险和强制险交完给退么
  • 成本类科目有哪些口诀
  • 公司车辆的维修费挂什么科目
  • 公司发工资如何操作
  • 废弃土地的使用年限
  • 研发费用加计扣除留存备查资料
  • 库存商品对外销售会计分录
  • 分次缴纳的注册资本入什么科目?
  • 社平工资调整补差什么意思
  • 短期理财的门槛
  • 小规模定期定额申报
  • 企业接受固定资产投资
  • 企业所得税逾期未申报怎么补申报
  • 即征即退增值税政策
  • 误餐补助需要发票做账吗
  • 居委会有没有税收政策
  • 专票当月未认证怎么处理
  • 公司收到保险公司的理赔款怎么做分录
  • 未实现但已确认的风险代理费收入如何处理?
  • 贷款利息收到发票怎么办
  • 年终汇算清缴怎么计算
  • 非营利组织免税条件发生变化
  • 无形资产摊销算头不算尾
  • mac上如何切换apple id
  • 如何设置系统自带的输入法
  • 企业长期借款的利息,有可能计入的科目有( )
  • 客户申请退款商家拒绝退货退款会有什么效果
  • 商票 银行贴现
  • 水养绿萝怎么养护长得才茂盛
  • 商品流通企业会计科目表
  • php修改ip地址
  • yolo v5 focus
  • 如何理解土地使用制度
  • 为什么税前利润加可抵扣暂时性差异
  • 大二一学期学分多少合适
  • 出口货物视同内销征税的会计核算?
  • 网站为什么需要备案
  • 联营企业和合营企业是什么意思
  • 财务管理中的折现率是指什么
  • 自产自销农产品免税备案取消
  • 小规模增值税结转账务处理
  • 公司缴纳的印花税会计分录
  • 公司逾期交税,后期补上有何后果
  • python如何访问私有方法
  • 银行汇票用什么会计分录
  • mongodb mysql配合使用
  • sql server数据库怎么使用
  • 无形资产属于货物吗为什么
  • 财税人员岗位职责
  • 收到一张发票摘要怎么填
  • 物业管理单位收取的物业费征不征收增值税
  • 股权转让的印花税税率是多少
  • 哪些业务需要计提国别风险准备金
  • 股东是否实缴出资的举证责任
  • 注销基本户必须注销专户吗
  • 生产成本比主营业务成本大
  • mysql中having什么意思
  • mybatis分页插件的原理
  • CentOS7 64位安装mysql图文教程
  • win10预览版21390
  • vista sp2 旗舰版 key
  • 什么是活动目录和域
  • Linux中终止某个用户的所有进程的简单方法
  • ubuntu系统安装报错
  • macbookair如何恢复系统
  • winex.exe - winex是什么进程
  • SUSE Linux Enterprise Server 设置IP地址、网关、DNS的方法
  • linux文件系统损坏导致网络断开
  • node.js项目结构
  • 提高css文件可维性的方法
  • linux系统搜索文件内容
  • python文件管理系统难点总结
  • jquery使用教程
  • flex开发工具
  • python三种类型
  • 向境外付款需要代扣代缴所得税吗
  • 12333热线时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设