位置: 编程技术 - 正文

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

  • 增值税专用发票几个点
  • 残保金季报要填上年职工人数
  • 票种核定表怎么填写
  • 差额征收企业指什么企业
  • 成品油认证后要开票怎么做
  • 企业所得税为什么那么高
  • 短期借款属于经营性资产吗
  • 短期薪酬是会计科目么
  • 哪些发票可以冲红票
  • 怎么计算股票的压力位和支撑位
  • 无形资产增资账务处理
  • 丢失发票联和抵扣联
  • 接受实物投资纳印花税怎么缴纳?
  • 抵扣税控盘维护费会计分录
  • 承包费收入如何交增值税
  • 装修期间用电
  • 如何利用成套消费品进行纳税筹划
  • 议价收购股份的账务处理
  • 专票开票信息不填省份可以吗
  • 汽车的增值税可以退税吗
  • 申报的国家资助的一个项目如何进行账务处理?
  • 对整个产品的零件退回的财务会计处理?
  • 若依前后端分离需要准备啥
  • win10系统白名单怎么设置
  • 健康助手在哪里找到
  • 会计科目暂存款是什么意思
  • 环保税与排污费的联系
  • win10默认网关不可用总掉线解决方法
  • 认知度高的人
  • 酒店开业前准备工作流程
  • 在建工程减值准备
  • 生产企业放假前的安全提示
  • 专家顾问作用
  • 权利许可证照印花税优惠政策
  • 今日清明是清明开始还是结束
  • 抖音是如何成功的
  • 售后租回怎么理解
  • word element
  • 国家税务局监制的票还能用吗
  • 投资款超过实收资本会计处理
  • 车补贴是要缴纳增值税吗
  • 罚款可以直接在12123
  • PostgreSQL教程(十七):客户端命令(1)
  • 去税务局流程
  • 什么是公司财务管理中的一个重要组成部分
  • 给客户优惠货款怎么写
  • 融资租赁收到的租金计入什么科目
  • 经营性现金流量三种算法
  • 商业承兑汇票结算会计分录
  • 普通发票作废如何恢复
  • 公司建账初期做账怎么做
  • 企业向员工收取费用
  • mysql爆破字典
  • win7与ubuntu双系统
  • vcspawn.exe什么意思
  • 没有系统盘怎么修复系统
  • winxp怎么装系统
  • jgcx是什么软件的文件
  • xp电脑内存占用过高怎么办
  • centos怎么安装
  • win7系统计算机管理在哪里
  • win7系统文件夹怎么加密
  • win8怎么隐藏桌面图标
  • Android Eclipse 项目报错,但没有显示具体错的代码位置
  • Please ensure that adb is correctly located at 'D:Androidandroid-sdkplatform-toolsadb.exe' and
  • Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
  • dos 删除文件夹下所有文件
  • jquery调用iframe中的方法
  • dom4j解析xml字符串步骤
  • 使用jquery操作dom
  • 全面解析少女时代关系
  • jQuery EasyUI Pagination实现分页的常用方法
  • 如何判断python列表长度
  • 小规模现代服务的税率是多少啊怎么算
  • 江苏省税务局书记局长
  • 朝阳税务总局
  • 外贸出口退税增值税结转每月
  • 重庆电子税务局怎么绑定办税人员
  • 国网四川电力客户电话号码
  • 核定征收申报表填写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设