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

h5哪个网站可以做上海市建设监理协会网站查询

h5哪个网站可以做,上海市建设监理协会网站查询,wordpress前端后端,大数据营销系统多少钱文章目录 一、定义#xff1a;接口隔离原则二、模拟场景#xff1a;接口隔离原则三、违背方案#xff1a;接口隔离原则3.1 工程结构3.2 英雄技能调用3.2.1 英雄技能接口3.2.2 英雄#xff1a;后裔3.2.3 英雄#xff1a;廉颇 3.3 单元测试 四、改善代码#xff1a;接口隔离… 文章目录 一、定义接口隔离原则二、模拟场景接口隔离原则三、违背方案接口隔离原则3.1 工程结构3.2 英雄技能调用3.2.1 英雄技能接口3.2.2 英雄后裔3.2.3 英雄廉颇 3.3 单元测试 四、改善代码接口隔离原则4.1 工程结构4.2 英雄分配英雄技能4.2.1 射箭接口4.2.2 隐袭接口4.2.3 沉默4.2.4 晕眩4.2.5 英雄后裔的实现4.2.6 英雄廉颇的实现 4.3 单元测试 一、定义接口隔离原则 接口隔离原则Interface Segregation PrincipleISP。 客户端不应该被迫依赖于它不使用的方法。另一个定义一个类对另一个类的依赖应该建立在最小的接口上。 接口隔离原则要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口让接口只包含客户感兴趣的方法。接口隔离是为了 高内聚、低耦合。 在实际的业务开发中通常会先定义好需要开发的接口并由各个服务类实现。但如果没有经过考虑和设计就很可能造成一个接口中包括众多的接口方法而这些接口并不一定在每一个类中都需要实现。这样的接口很难维护也不易于扩展每一次修改验证都有潜在的风险。 在具体应用接口隔离原则时应该根据一下几个规则衡量。 接口尽量小但是要有限度。一个接口只服务于一个子模块或业务逻辑。为依赖接口的类定制服务。只提供调用者需要的方法屏蔽不需要的方法。了解环境拒绝盲从。每个项目或产品都有选定的环境因素环境不同接口拆分的标准就不同要深入了解业务逻辑。提高内聚减少对外交互。让接口用最少的方法完成最多的事情。 二、模拟场景接口隔离原则 《王者荣耀》里有很多英雄可以分为射手、战士、刺客等每个英雄有三种技能。这些技能该如何定义让每个英雄实现相应的技能效果呢 三、违背方案接口隔离原则 3.1 工程结构 design-1.5-0 |——src|——main|--java|--com.lino.design|--HeroHouYi.java|--HeroLianPo.java|--ISkill.java|——test|--java|--com.lino.design.test|--ApiTest.java3.2 英雄技能调用 3.2.1 英雄技能接口 ISkill.java package com.lino.design;/*** description: 英雄技能接口*/ public interface ISkill {/*** 射箭*/void doArchery();/*** 隐袭*/void doInvisible();/*** 沉默*/void doSilent();/*** 眩晕*/void doVertigo(); }定义一个技能接口实现的英雄都需要实现这个接口进而实现自己的技能。这里提供了四个技能的接口包括射箭、隐袭、沉默、晕眩每个英雄都实现这个接口。接下来实现两个英雄后裔和廉颇。 3.2.2 英雄后裔 HeroHouYi.java package com.lino.design;/*** description: 英雄后裔*/ public class HeroHouYi implements ISkill {Overridepublic void doArchery() {System.out.println(后裔的灼日之矢);}Overridepublic void doInvisible() {System.out.println(后裔的隐身技能);}Overridepublic void doSilent() {System.out.println(后裔的沉默技能);}Overridepublic void doVertigo() {// 无此技能的实现} }在英雄后裔的类中实现了三个技能最后一个晕眩的技能是不需要实现的。 3.2.3 英雄廉颇 HeroLianPo.java package com.lino.design;/*** description: 英雄廉颇*/ public class HeroLianPo implements ISkill {Overridepublic void doArchery() {// 无此技能的实现}Overridepublic void doInvisible() {System.out.println(廉颇的隐身技能);}Overridepublic void doSilent() {System.out.println(廉颇的沉默技能);}Overridepublic void doVertigo() {System.out.println(廉颇的眩晕技能);} }在英雄廉颇的类中同样只实现了三个技能有一个射箭的技能没有实现。 3.3 单元测试 ApiTest.java Test public void test_ISKill() {// 后裔HeroHouYi heroHouYi new HeroHouYi();heroHouYi.doArchery();// 廉颇HeroLianPo heroLianPo new HeroLianPo();heroLianPo.doInvisible(); }测试结果 后裔的灼日之矢 廉颇的隐身技能综上每个英雄的实现类里都有一个和自己无关的接口实现类非常不符合设计模式也不易于维护。因为不仅无法控制外部的调用还需要维护对应的文档来说明这个接口不需要实现。如果由更多这样的接口就会变得非常麻烦。 四、改善代码接口隔离原则 4.1 工程结构 design-1.5-1 |——src|——main|--java|--com.lino.design|--impl| |-HeroHouYi.java| |-HeroLianPo.java|--ISkillArchery.java|--ISkillInvisible.java|--ISkillSilent.java|--ISkillVertigo.java|——test|--java|--com.lino.design.test|--ApiTest.java4.2 英雄分配英雄技能 按照接口隔离原则的约定应该在确保合理的情况下把接口细分。保证一个松散的结构也就是把技能拆分出来每个英雄都可以按需继承实现。接下来分别定义四个技能接口包括 射箭ISkillArchery隐身ISkillInvisible沉默ISkillSilent晕眩ISkillVertigo 4.2.1 射箭接口 ISkillArchery.java package com.lino.design;/*** description: 射箭技能*/ public interface ISkillArchery {/*** 射箭*/void doArchery(); }4.2.2 隐袭接口 ISkillInvisible.java package com.lino.design;/*** description: 影袭技能*/ public interface ISkillInvisible {/*** 隐袭*/void doInvisible(); }4.2.3 沉默 ISkillSilent.java package com.lino.design;/*** description: 沉默技能*/ public interface ISkillSilent {/*** 沉默*/void doSilent(); }4.2.4 晕眩 ISkillSilent.java package com.lino.design;/*** description: 晕眩技能*/ public interface ISkillVertigo {/*** 眩晕*/void doVertigo(); }4.2.5 英雄后裔的实现 HeroHouYi.java package com.lino.design.impl;import com.lino.design.ISkillArchery; import com.lino.design.ISkillInvisible; import com.lino.design.ISkillSilent;/*** description: 英雄后裔*/ public class HeroHouYi implements ISkillArchery, ISkillInvisible, ISkillSilent {Overridepublic void doArchery() {System.out.println(后裔的灼日之矢);}Overridepublic void doInvisible() {System.out.println(后裔的隐身技能);}Overridepublic void doSilent() {System.out.println(后裔的沉默技能);} }4.2.6 英雄廉颇的实现 HeroLianPo.java package com.lino.design.impl;import com.lino.design.ISkillInvisible; import com.lino.design.ISkillSilent; import com.lino.design.ISkillVertigo;/*** description: 英雄廉颇*/ public class HeroLianPo implements ISkillInvisible, ISkillSilent, ISkillVertigo {Overridepublic void doInvisible() {System.out.println(廉颇的隐身技能);}Overridepublic void doSilent() {System.out.println(廉颇的沉默技能);}Overridepublic void doVertigo() {System.out.println(廉颇的眩晕技能);} }4.3 单元测试 ApiTest.java Test public void test_ISKill() {// 后裔HeroHouYi heroHouYi new HeroHouYi();heroHouYi.doArchery();// 廉颇HeroLianPo heroLianPo new HeroLianPo();heroLianPo.doInvisible(); }测试结果 后裔的灼日之矢 廉颇的隐身技能现在可以看到这两个英雄的类都按需实现了自己需要的技能接口。这样的实现方式就可以避免一些本身不属于自己的技能还需要不断地用文档的方式进行维护同时提高了代码的可靠性在别人接手或者修改时可以降低开发成本和维护风险。
http://www.hkea.cn/news/14368771/

相关文章:

  • 要建立网站是否要先做网页设计_然后把网页设计与数据库连接起来?营销网站与传统网站的区别
  • dw网站导航怎么做个人网站如何备案
  • 瑞金网站建设光龙电子商务网站规划与设计
  • 运营好还是网站开发好wordpress和织梦百度收录
  • 网站建设和维护待遇怎样建站至尊
  • 英国小子做房产网站上海专业做网站的
  • 手机wap版网站制作青海省建设局网站首页
  • 企业网站哪里可以做网站建设属于技术服务吗
  • 百度云虚拟主机做网站python基础教程 入门教程
  • 网站改版方案案例wordpress招聘主题
  • 福州市建设厅网站thinkphp怎么做网站
  • 贵安新区住房和城乡建设厅网站技术支持 广州网站建设
  • 福州做网站哪家公司好浙江杰立建设集团 网站首页
  • 100个有趣的网站信息网络公司经营范围
  • 网站建设费用怎么记账铜仁网站建设哪家专业
  • 做app和做网站遵义建站
  • 电信网站服务器制作一个网站的费用是多少钱
  • 免费的网站模板哪里有网站风格设计视觉
  • 百度不收入我的网站了国内网站设计案例
  • 上海网站建设案例网站官方首页设计
  • wordpress个人网站oa管理系统免费版
  • 企业做网站推广如何做淘宝店网站
  • 学工系统网站建设的意义cn域名有名的网站
  • wordpress打开最快的网站简单介绍家乡网页html代码
  • 六站合一的优势合肥网站建设制作价格
  • 学校网站建设好么做网站郑州
  • 文山专业网站建设报价重庆网络推广网站推广
  • 营销型网站商城写简历的网站
  • 如何将域名指向网站互联网保险经纪公司
  • 广东电白建设集团有限公司网站专门做网站的公司交什么