位置: 编程技术 - 正文

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

  • 一般纳税人的税点
  • 企业办理银行承兑汇票的手续费用应计入什么账户
  • 个人注册公司有什么优惠政策
  • 对公走账是什么意思
  • 收取不合规发票怎么处理
  • 户口与工作地不一致,社保
  • 企业清理固定资产所得税汇算是需要调整吗
  • 退休人员怎么缴纳城镇居民医保
  • 销项进项怎么转化
  • 购入工程物资计入
  • 公司注册前发生费用没有发票怎么办
  • 停工损失会计科目
  • 员工的家庭
  • 外出经营活动税收管理证明和跨区域涉税事项报告表
  • 取得不动产时的作价
  • 企业所得税免征和不征
  • 公司购买灯具的会计分录
  • 开劳务分包发票需要什么条件?
  • 对公账户网银证书有效期多久
  • 进口设备属于货物贸易吗
  • 怎么查以前申报的财务报表
  • 进项税和销项税借贷方向
  • 进项发票抵扣范围
  • 跨年度主营业务收入错账调整
  • 员工交通费报销标准
  • 公务接待和商务接待自查
  • 投入资本回报率是总资产报酬率吗
  • 一般纳税人销售自己使用过的汽车
  • 给客户的贴息的会计处理
  • 简易征收的分录
  • video标签自动播放可以带声音吗
  • 由于找不到msvcr120.dll,无法继续执行代码什么意思
  • 银行承兑汇票背书人和被背书人什么关系
  • 当月认证了发票但没有进行增值税申报
  • PHP:is_writeable()的用法_Filesystem函数
  • 斋普尔的景点
  • 公司交纳社会保险多少钱
  • 交易性金融资产属于流动资产
  • 投资担保公司的钱都去哪了
  • detr训练自己的数据集
  • 杀疯了出自哪里
  • 视同销售的情况有哪些?
  • 已付款收货未收到发票怎么做账
  • 飞机票电子发票能报销吗
  • 个人退税证明怎么开具
  • 待认证进项税额是二级科目还是三级科目
  • 事业单位收入入账
  • 水灾期间未生产怎么处理
  • 年终奖的个税税率表
  • 出口企业出口退税流程
  • 如何访问一台网络上的电脑
  • 通货膨胀溢价的英文
  • ibps对公提回贷记有什么影响
  • 银行转账凭证可以保留多久
  • 员工预支钱要写什么单据
  • 银行取备用金最多能取多少
  • 应付账款周转率越大说明什么
  • 增值税开票系统怎么改开票人名字信息
  • 汽油费进项税额能抵扣吗
  • 季报企业所得税弥补亏损数怎么填
  • 应税销售行为如何处理
  • 取得投资时支付的相关税费
  • 小规模纳税人应纳增值税额的计算
  • SqlServer下通过XML拆分字符串的方法
  • winxp如何访问win10
  • window10打补丁
  • win8.1删除wifi
  • smss.exe是干嘛的
  • 在mac中该如何共享文件夹
  • node.js批量添加数据
  • nodejs自启动
  • android图片库
  • vue设置背景图片全屏
  • jquery动态设置css
  • python开发者文档
  • 基于vue的app
  • JavaScript中的方法名不区分大小写
  • javascript快速入门
  • 手游 unity
  • 关于草丛:单局游戏内
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设