当前位置: 首页 > news >正文

如何给网站做高质量外链机电设备网站模板

如何给网站做高质量外链,机电设备网站模板,做阿里巴巴网站图片尺寸,wordpress换行不换段落1.概念 依赖倒置原则#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.w-s-a.com/news/716131/

相关文章:

  • 住房城市乡建设部网站装修平台有哪些
  • 小米网站 用什么做的深圳广告公司前十强
  • 勤哲网站开发视频瑞安 网站建设培训
  • 有个蓝色章鱼做标志的网站高端的网站建设怎么做
  • 建站网址导航hao123html网页设计实验总结
  • 西宁市网站建设价格丽水集团网站建设
  • 长宁怎么做网站优化好本机怎么放自己做的网站
  • 诚信网站备案中心网站字体怎么设置
  • 企业网站建设费是无形资产吗佛山网站建设哪个好点
  • 网站建设就业方向国开行网站毕业申请怎么做
  • 创建一个网站的费用wordpress 4.0 安装
  • 会员登录系统网站建设dw软件是做什么用的
  • 手机网站被做跳转长沙网上购物超市
  • 网站建设中网站需求分析设计网站推荐html代码
  • 容易收录的网站台州汇客网站建设
  • 企业网站源码百度网盘下载网站备案号如何查询密码
  • 个人网站建设课程宣传栏制作效果图
  • 自己做的网站能上传吗网上做彩票网站排名
  • 教育培训网站模板下载自己做商务网站有什么利弊
  • 平面设计公司网站兰州室内设计公司排名
  • 个人工作室注册条件温州seo结算
  • 360免费建站系统中国建设银行官网站黄金部王毅
  • 罗源福州网站建设个体户可以网站备案吗
  • 网站开发 专有名词pc网站建设和推广
  • 上海部道网站 建设conoha wordpress
  • 手机测评做视频网站宝塔可以做二级域名网站么
  • 代理公司注册济南重庆seo优化效果好
  • 佛山市骏域网站建设专家徐州网站建设价格
  • 公司做网站多济南好的网站建设公司排名
  • 网站维护的方式有哪几种该网站在工信部的icp ip地址