大兴网站定制开发房地产招新人的坑

news/2025/9/26 13:51:31/文章来源:
大兴网站定制开发,房地产招新人的坑,进入百度搜索首页,如何在服务器上关闭网站依赖倒转原则 在大话设计模式这本书中#xff0c;作者通过电话修电脑这个例子引入了面向对象设计的基本原则之一#xff1a;依赖倒转原则。 概念 依赖倒转原则是面向对象设计的基本原则之一#xff0c;它用于减少类之间的耦合#xff0c;提高系统的灵活性和可维护性。在…依赖倒转原则 在大话设计模式这本书中作者通过电话修电脑这个例子引入了面向对象设计的基本原则之一依赖倒转原则。 概念 依赖倒转原则是面向对象设计的基本原则之一它用于减少类之间的耦合提高系统的灵活性和可维护性。在书中依赖倒转原则的原话解释是抽象不应该依赖细节细节应该依赖于抽象。它的主要内容可以分为两个部分 高层模块不应该依赖低层模块。两者都应该依赖其抽象。抽象不应该依赖于细节。细节应该依赖于抽象。 简单点说就是我们在编程的时候要依赖于抽象接口或抽象类不要依赖于具体的类对象。 这一原则与我们前文中所讲解的里氏代换原则相辅相成当我们满足里氏代换原则时子类能够完全替换父类。而满足依赖倒转原则时细节依赖于抽象抽象类一般是父类。因此当同时遵循这两个原则的时候我们的代码就能够通过子类灵活的进行扩展。 例子 光讲上面的概念可能难以理解其中的含义这里举一个具体的例子。 假设我们正在开发一个新闻应用这个应用有一个NewsService类它负责从不同的新闻源获取新闻。一开始我们只从网络获取新闻所以我们可能会有以下的设计 class NewsService {NetworkNewsFetcher fetcher;NewsService() {this.fetcher new NetworkNewsFetcher();}ListNews getNews() {return fetcher.fetch();} }class NetworkNewsFetcher {ListNews fetch() {// fetch news from the network} } 在这个设计中NewsService直接依赖于NetworkNewsFetcher这意味着如果我们想从其他来源如本地文件获取新闻我们就需要修改NewsService的代码。 现在让我们按照依赖倒转原则来重新设计这个系统 interface NewsFetcher {ListNews fetch(); }class NewsService {NewsFetcher fetcher;NewsService(NewsFetcher fetcher) {this.fetcher fetcher;}ListNews getNews() {return fetcher.fetch();} }class NetworkNewsFetcher implements NewsFetcher {Overridepublic ListNews fetch() {// fetch news from the network} }class LocalNewsFetcher implements NewsFetcher {Overridepublic ListNews fetch() {// fetch news from a local file} } 在这个新的设计中NewsService依赖于NewsFetcher接口而不是具体的NetworkNewsFetcher类。这样我们就可以在不修改NewsService的代码的情况下通过添加新的NewsFetcher实现如LocalNewsFetcher来扩展系统的功能。这个例子是通过代码来解释依赖倒转原则能够帮助有一定编程基础的同学能够更加清晰地体会到依赖倒转原则的优点。 优缺点 在大话设计模式中有这样一句话可以把PC电脑理解成是大的软件系统任何部件如CPU、内存、硬盘、显卡等都可以理解为程序中封装的类或程序集由于PC易插拔的方式那么不管哪一个出问题都可以在不影响别的部件的前提下进行修改或替换。 在这句话中 PC电脑依赖于CPU、内存、硬盘、显卡等硬件设备而这些硬件损坏的时候我们能够很方便的对其进行更换这就依赖于PC易插拔的方式。我们可以思考一个这样的问题PC易插拔的方式是怎么做到的其实就是因为它遵循了依赖倒置原则严格意义上来讲PC电脑所依赖的并不是具体的某一块CPU、内存、硬盘、显卡等硬件设备而是依赖能够插进主板插槽的硬件设备。而这个主板预留出的插槽其实就是我们前面所谓的“抽象”接口或抽象类只有主板依赖于插槽这些硬件的生产厂商再根据插槽的形状去做对应的硬件才能够实现PC易插拔。否则 如果PC依赖的具体的某一块CPU、内存、硬盘、显卡等硬件设备那如果硬件设备坏了就得整个PC都换掉因为PC只“用得惯”这一块硬件。 因此总结一下依赖倒转原则的优点它使我们的代码更加灵活更容易扩展和维护。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东莞网站制作电话糗事百科 wordpress

文章目录1. 题目2. 解题1. 题目 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回符合要求的最少分割次数。 示例: 输入: "aab" 输出: 1 解释: 进行一次分割就可将 s 分割成 ["aa","b"] 这样两个回文…

济南网站建设公司 推荐行知科技自己做网站用什么app

前言 本文主要介绍Redis的三种持久化方式、AOF持久化策略等 什么是持久化 持久化是指将数据在内存中的状态保存到非易失性介质(如硬盘、固态硬盘等)上的过程。在计算机中,内存中的数据属于易失性数据,一旦断电或重启系统&#…

别再靠 “关设备” 减碳!EMS 的 “预测性控能”,让企业满产也能达标双碳

在 “双碳” 目标推进的当下,减碳已成为企业发展的必答题。然而,不少企业仍陷入 “减碳就减产” 的困境 —— 为了降低碳排放,不得不采取关停生产线、限制设备运行时长等简单粗暴的方式,结果导致订单交付延迟、产能…

双活、异地多活架构怎么设计才不翻车? - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

阿里云客服界面

阿里云客服界面 漫思

关于认证系统安全的产品能力补齐

关于认证系统安全的产品能力补齐 漫思

网站个人简介怎么做公司建一个网站多少钱

transition: box-shadow 0.3s; 给按钮加效果 transition: all 0.7s; 给进度条

四川网站建设培训学校高端公司小程序建设

优先级 在同一级目录下,会先比较前缀bootstrap、application,其中bootstrap比application的优先级高,其次再去比较后缀.properties、.yml,其中.properties比.yml优先级高 所以它们的执行顺序如下: bootstrap.propert…

LAMP 架构说明及部署实践 - 教程

LAMP 架构说明及部署实践 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&qu…

【Linux】优秀的系统部分——线程池的基本设计思路

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:Pycharm中切换虚拟环境

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深圳品牌内衣t台秀邢台视频优化效果

众所周知,i9-9900KF相当于i9-9900K去除核显的版本,其它参考保持一致,所以在性能上也是相同的。不过在近期,intel牌牙膏厂再一次发布了一款九代酷睿i9-9900KS特别版,从产品型号S后缀上来看,确实有点类似于NV…

MyEMS 深度解析:核心功能模块、数据流转逻辑与工业能源优化落地路径

在工业4.0与“双碳”目标的双重驱动下,能源管理已成为制造业企业提升竞争力、实现可持续发展的核心环节。MyEMS 作为一套成熟的开源能源管理系统,因其功能的完备性、架构的开放性和落地的高效性而备受关注。本文将从…

如何选择合适的服务器租用商? - 实践

如何选择合适的服务器租用商? - 实践2025-09-25 13:13 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

kettle插件-国产数据库金仓插件,助力国产数据库腾飞

场景:国产数据库(金仓,达梦,瀚高,海量等)信创环境下最近发展的势头很猛,今天我们一起来学习下人大金仓(电科金仓)数据库,从金仓数据库中读取数据以及使用金仓数据库作为kettle的资源仓库,废话少数,开干。 …

制造业碳足迹追踪:开源能源管理系统如何助力企业实现“碳数据可视化”?

在全球碳中和浪潮与绿色供应链要求下,制造业正面临日益严格的碳监管与披露压力。然而,对于许多企业而言,“碳足迹”仍是一个停留在报告中的抽象概念。碳数据从哪里来?如何保证准确?又如何用于实际决策?成为横亘在…

网站建设甲方给乙方的需求方案wordpress 仿新浪微博

引言: 在数字时代,数据安全成为一项至关重要的挑战。DevicData-D-XXXXXXXX勒索病毒(以下简称DevicData病毒)是这场战斗中的新敌人,它能够以毁灭性的方式加密您的数据,迫使您在数据和时间之间做出艰难的选择…

淘宝联盟必须要网站备案织梦网站模板 虎嗅网

什么是实景三维? 实景三维(3D Real Scene)是一个专业术语,它指的是对一定范围内人类生产、生活和生态空间进行真实、立体、时序化反映和表达的数字虚拟空间。它是新型基础测绘的标准化产品,也是国家重要的新型基础设施…

iframe安全盲区:支付信息窃取攻击的新温床 - 教程

iframe安全盲区:支付信息窃取攻击的新温床 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…