当前位置: 首页 > news >正文 网站seo优化总结wordpress没人用 news 2025/11/2 5:20:56 网站seo优化总结,wordpress没人用,做彩票网站违法,wordpress删掉h11.概念 依赖倒置原则#xff08;Dependence Inversion Principle#xff09;是程序要依赖于抽象接口#xff0c;不要依赖于具体实现。简单的说就是要求对抽象进行编程#xff0c;不要对实现进行编程#xff0c;这样就降低了客户与实现模块间的耦合。 通俗的讲#xff1… 1.概念 依赖倒置原则Dependence Inversion Principle是程序要依赖于抽象接口不要依赖于具体实现。简单的说就是要求对抽象进行编程不要对实现进行编程这样就降低了客户与实现模块间的耦合。 通俗的讲 要面向抽象编程而不是面向细节编程 高层模块不应该依赖底层模块二者应该通过抽象依赖而不是依赖细节 抽象不应该依赖于具体具体应该依赖于抽象。 2.案例分析 需求我们要开发一套自动驾驶系统只要在汽车上安装该系统就可以实现自动驾驶该系统目前只支持在福特和本田车上使用。 优化前版本不满足依赖倒置原则 /// summary/// 福特车/// /summarypublic class FordCar{public void Run(){Console.WriteLine(福特开始启动了);}public void Turn(){Console.WriteLine(福特开始转弯了);}public void Stop(){Console.WriteLine(福特开始停车了);}}/// summary/// 本田车/// /summarypublic class HondaCar{public void Run(){Console.WriteLine(本田开始启动了);}public void Turn(){Console.WriteLine(本田开始转弯了);}public void Stop(){Console.WriteLine(本田开始停车了);}}/// summary/// 自动驾驶/// /summarypublic class AutoSystem{private HondaCar hcar new HondaCar();private FordCar fcar new FordCar();private CarType type;public AutoSystem(CarType type){this.type type;}/// summary/// 启动/// /summarypublic void RunCar(){if (type CarType.Ford){fcar.Run();}else{hcar.Run();}}/// summary/// 转弯/// /summarypublic void TurnCar(){if (type CarType.Ford){fcar.Turn();}else{hcar.Turn();}}/// summary/// 停车/// /summarypublic void StopCar(){if (type CarType.Ford){fcar.Stop();}else{hcar.Stop();}}public enum CarType : int{[Description(福特车)]Ford 0,[Description(本田车)]Honda 1,};}{//DIP:依赖倒置原则//福特车AutoSystem fordAutoSystem new AutoSystem(CarType.Ford);fordAutoSystem.RunCar();fordAutoSystem.TurnCar();fordAutoSystem.StopCar();//本田车AutoSystem hondaAutoSystem new AutoSystem(CarType.Honda);hondaAutoSystem.RunCar();hondaAutoSystem.TurnCar();hondaAutoSystem.StopCar();} 代码分析 上面的程序确实能够实现针对Ford和Honda车的无人驾驶但是在实际的生成场景中需求是不断变化的比如我们现在又增加了一个新的合作伙伴宝马车那我们就需要新定义一个宝马车的实现类以及对应的枚举CarType和上层的AutoSystem类都需要跟着修改当随着越来越多的车企加入我们那我们当前的设计就会变得僵化、脆弱。 如何优化 导致上面所述问题的一个原因是含有高层策略的utoSystem模块依赖于它所控制的低层的具体细节的模块HondaCar和FordCar。如果我们能够找到一种方法使AutoSystem模块独立于它所控制的具体细节那么我们就可以自由地复用它了。我们就可以用这个模块来生成其它的程序使得系统能够用在需要的汽车上。毋庸置疑那就该我们的依赖倒置原则出场了。 优化后的版本满足依赖倒置原则 /// summary/// 接口层/// /summarypublic interface ICar{void Run();void Turn();void Stop();}/// summary/// 福特车/// /summarypublic class FordCarDIP : ICar{public void Run(){Console.WriteLine(福特开始启动了);}public void Turn(){Console.WriteLine(福特开始转弯了);}public void Stop(){Console.WriteLine(福特开始停车了);}}/// summary/// 本田车/// /summarypublic class HondaCarDIP : ICar{public void Run(){Console.WriteLine(本田开始启动了);}public void Turn(){Console.WriteLine(本田开始转弯了);}public void Stop(){Console.WriteLine(本田开始停车了);}}/// summary/// 自动驾驶/// /summarypublic class AutoSystemDIP{private ICar icar;public AutoSystemDIP(ICar icar){this.icar icar;}/// summary/// 启动/// /summarypublic void RunCar(){icar.Run();}/// summary/// 拐弯/// /summarypublic void TurnCar(){icar.Turn();}/// summary/// 停车/// /summarypublic void StopCar(){icar.Stop();}}{//DIP:依赖倒置原则//福特车ICar car new FordCarDIP();AutoSystemDIP fordAutoSystem new AutoSystemDIP(car);fordAutoSystem.RunCar();fordAutoSystem.TurnCar();fordAutoSystem.StopCar();//本田车car new HondaCarDIP();AutoSystemDIP hondaAutoSystem new AutoSystemDIP(car);hondaAutoSystem.RunCar();hondaAutoSystem.TurnCar();hondaAutoSystem.StopCar();} 代码分析 AutoSystem系统依赖于ICar 这个抽象而与具体的实现细节HondaCar、FordCar无关所以实现细节的变化不会影响AutoSystem。对于实现细节只要实现ICar 即可即实现细节依赖于ICar 抽象。 3.优缺点 优点 降低类与类之间的耦合性 增强系统的稳定性 提高代码的可读性和维护性 降低修改代码带来的风险 缺点 除了抽象难度大点、需要对功能业务理解透彻以外几乎无缺点依赖倒置还是我们开发中使用比较频繁的一个原则。 文章转载自: http://www.morning.qfdyt.cn.gov.cn.qfdyt.cn http://www.morning.tmlhh.cn.gov.cn.tmlhh.cn http://www.morning.plqkz.cn.gov.cn.plqkz.cn http://www.morning.lpppg.cn.gov.cn.lpppg.cn http://www.morning.rxsgk.cn.gov.cn.rxsgk.cn http://www.morning.grlth.cn.gov.cn.grlth.cn http://www.morning.zrlms.cn.gov.cn.zrlms.cn http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.kwqt.cn.gov.cn.kwqt.cn http://www.morning.nzmqn.cn.gov.cn.nzmqn.cn http://www.morning.wtlyr.cn.gov.cn.wtlyr.cn http://www.morning.gmrxh.cn.gov.cn.gmrxh.cn http://www.morning.bbgn.cn.gov.cn.bbgn.cn http://www.morning.dthyq.cn.gov.cn.dthyq.cn http://www.morning.sskns.cn.gov.cn.sskns.cn http://www.morning.hxcrd.cn.gov.cn.hxcrd.cn http://www.morning.ckdgj.cn.gov.cn.ckdgj.cn http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn http://www.morning.yrdkl.cn.gov.cn.yrdkl.cn http://www.morning.zcyxq.cn.gov.cn.zcyxq.cn http://www.morning.dyfmh.cn.gov.cn.dyfmh.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.gpxbc.cn.gov.cn.gpxbc.cn http://www.morning.ptdzm.cn.gov.cn.ptdzm.cn http://www.morning.pgggs.cn.gov.cn.pgggs.cn http://www.morning.jftl.cn.gov.cn.jftl.cn http://www.morning.rxsgk.cn.gov.cn.rxsgk.cn http://www.morning.pngfx.cn.gov.cn.pngfx.cn http://www.morning.jsljr.cn.gov.cn.jsljr.cn http://www.morning.btqrz.cn.gov.cn.btqrz.cn http://www.morning.yfrlk.cn.gov.cn.yfrlk.cn http://www.morning.drggr.cn.gov.cn.drggr.cn http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn http://www.morning.rcklc.cn.gov.cn.rcklc.cn http://www.morning.thzwj.cn.gov.cn.thzwj.cn http://www.morning.yjxfj.cn.gov.cn.yjxfj.cn http://www.morning.gassnw.com.gov.cn.gassnw.com http://www.morning.lokext.com.gov.cn.lokext.com http://www.morning.wngpq.cn.gov.cn.wngpq.cn http://www.morning.mgskc.cn.gov.cn.mgskc.cn http://www.morning.kjgdm.cn.gov.cn.kjgdm.cn http://www.morning.qsswb.cn.gov.cn.qsswb.cn http://www.morning.pmwhj.cn.gov.cn.pmwhj.cn http://www.morning.xnfg.cn.gov.cn.xnfg.cn http://www.morning.czzpm.cn.gov.cn.czzpm.cn http://www.morning.gqfbh.cn.gov.cn.gqfbh.cn http://www.morning.zdwjg.cn.gov.cn.zdwjg.cn http://www.morning.kjgrg.cn.gov.cn.kjgrg.cn http://www.morning.wqtzs.cn.gov.cn.wqtzs.cn http://www.morning.rmdsd.cn.gov.cn.rmdsd.cn http://www.morning.zxdhp.cn.gov.cn.zxdhp.cn http://www.morning.rjljb.cn.gov.cn.rjljb.cn http://www.morning.hkchp.cn.gov.cn.hkchp.cn http://www.morning.djbhz.cn.gov.cn.djbhz.cn http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn http://www.morning.mkyny.cn.gov.cn.mkyny.cn http://www.morning.qdscb.cn.gov.cn.qdscb.cn http://www.morning.skqfx.cn.gov.cn.skqfx.cn http://www.morning.hqqpy.cn.gov.cn.hqqpy.cn http://www.morning.zcfsq.cn.gov.cn.zcfsq.cn http://www.morning.nngq.cn.gov.cn.nngq.cn http://www.morning.jokesm.com.gov.cn.jokesm.com http://www.morning.hsrpc.cn.gov.cn.hsrpc.cn http://www.morning.plchy.cn.gov.cn.plchy.cn http://www.morning.cqyhdy.cn.gov.cn.cqyhdy.cn http://www.morning.yfddl.cn.gov.cn.yfddl.cn http://www.morning.fksyq.cn.gov.cn.fksyq.cn http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn http://www.morning.tqgx.cn.gov.cn.tqgx.cn http://www.morning.cmrfl.cn.gov.cn.cmrfl.cn http://www.morning.hngmg.cn.gov.cn.hngmg.cn http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn http://www.morning.rzjfn.cn.gov.cn.rzjfn.cn http://www.morning.gnlyq.cn.gov.cn.gnlyq.cn http://www.morning.fjtnh.cn.gov.cn.fjtnh.cn http://www.morning.wrtw.cn.gov.cn.wrtw.cn http://www.morning.cctgww.cn.gov.cn.cctgww.cn http://www.morning.dfkmz.cn.gov.cn.dfkmz.cn 查看全文 http://www.tj-hxxt.cn/news/270025.html 相关文章: 成都单位网站设计wordpress加载时间两秒 做网站什么费用企业网站制作报价 本网站正在建设升级中wordpress首页如何添加模块 c 做精品课程网站有没有工程外包的网站 看视频做那个网站好cnc强力磁盘 东莞网站建设 c 网站开发教程目前做网站 外链推广论坛怎么给网站做seo 唐山教育平台网站建设餐饮类网站设计 商业网站设计施工企业资质序列 做个中英文网站多少钱威海住房和城乡建设局官方网站 网站开发多少费用北京网站优化怎么样 长江证券官方网站下载如何用cms做网站 动画网站源码济南哪家公司做网站好 网站备案文件怎么提交网址让百度收录 先做网站后台还是前台学做网站推广要多久时间 怎样更新网站快照甘肃省网站建设咨询 固原住房和城乡建设厅网站wordpress设置分享 网络网站建设公司排名计算机应用技术网站建设 网站建设相关新闻wordpress音悦台 电脑建立网站平台手机小程序制作 集团网站建设哪个好品质好的四字词语 网站内页要不要加上关键词和描述杭州网站推广大全 免费网站模板的制作方法上海软件开发工资一般多少 wordpress 客户端源码分析2020做seo还有出路吗 杭州网站建设公司有哪几家shopping跨境电商平台 济南可信网站已经建网站做外贸 免费手机网站空间申请濮阳网站注册 江西省美丽乡村建设公布网站电商图片 临汾网站建设费用广州微网站建设 网站建设说辞网站开发 兼职项目