位置: 编程技术 - 正文

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

  • 哪些税不用通过应交税费
  • 教育培训行业成本怎么结转
  • 暂估成本没有发票
  • 市场营销策划开题报告
  • 技术合同免税备案流程2022年
  • 停工留薪期工资计算公式
  • 折旧已经计提完的固定资产如何盘点
  • 税前可以扣除的有哪些费用
  • 票货分离怎么处理
  • 一般纳税人能否开3%的普票
  • 超市顾客返利如何做账务处理?
  • 建设单位对施工单位的管理要求
  • 人力资源代缴社保合法吗
  • 营改增的会计处理及其对财务的影响
  • 原材料的运输费怎么做会计分录
  • 高新技术企业退税比例是多少
  • 赎回公司发行的债券怎么做账?
  • 简易计税进项税额转出公式
  • 固定资产的折旧从什么时候开始
  • 工资现金发放的零头入账
  • 当月支付的费用需要计提吗
  • 哪些费用可以做研发费用
  • 电子商务如何做账
  • 对公账户是否有银行卡号
  • 电脑病毒的特点包括
  • php实现断点续传
  • vpengine.exe进程
  • dreamweaver 是什么
  • php axios
  • php后端技术栈
  • PHP:imagesetthickness()的用法_GD库图像处理函数
  • 公司清算债权债务如何清理
  • php常用设计模式(大总结)
  • 神经辐射场nerf三维重建入门
  • 前端控制台
  • 财务费用包括什么利息
  • 长期待摊费用的账务处理
  • 费用科目分别有什么
  • java中map.entry
  • mongodb数据库操作遇到的问题和解决方案
  • 织梦cms怎么样
  • 帝国cms伪静态规则
  • 错账调整分录
  • 金蝶利润表为什么只有累计数没有本月数
  • 百万级别数据库mysql
  • 计提应交增值税怎么做账务处理
  • 企业购买银行理财产品的会计处理
  • 未确认融资费用借贷方向
  • 个税返还手续费政策
  • 不开票收入要交印花税吗
  • 其他应收款审计说明怎么写
  • 境外个人给境内个人汇款什么名义申报
  • 投资性房地产公允价值模式转为成本模式
  • 个人独资企业与一人公司的区别与联系
  • 手写账目表格怎么做
  • 其他应付款坏账处理说明
  • 超市会计如何核算成本
  • 管理费用是负数怎么处理
  • 如何在ubuntu下安装和配置gcc并用C语言
  • win7安装sqlserver2000没反应
  • 一键ghost还原备份
  • win10录音机不能用
  • 安装yum的命令
  • 日历功能在哪里设置
  • windows桌面右下角图标不显示
  • win10正式版发布时间
  • Cocos2dx------从json文件读取数据
  • 批处理在windows中的典型应用
  • 批处理传输文件夹到ftp
  • javascript原生写法
  • [置顶]JM259194
  • javascript中window.event事件用法详解
  • gridview行数
  • nodejs python交互
  • 对税务机关的意见建议怎么写
  • 开票地税怎么算的
  • 初始密码是几位数
  • 朝阳区第六税务所
  • 注册一个信息咨询公司需要什么
  • 吉林省会考成绩查询入口网站官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设