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

廊坊网站建设多少钱做酒店网站

廊坊网站建设多少钱,做酒店网站,个人网站怎么注册,如何查询自己的网站是否被收录函数式接口实现策略模式 1.案例背景 我们在日常开发中#xff0c;大多会写if、else if、else 这样的代码#xff0c;但条件太多时#xff0c;往往嵌套无数层if else,阅读性很差#xff0c;比如如下案例#xff0c;统计学生的数学课程的成绩#xff1a; 90-100分#…函数式接口实现策略模式 1.案例背景 我们在日常开发中大多会写if、else if、else 这样的代码但条件太多时往往嵌套无数层if else,阅读性很差比如如下案例统计学生的数学课程的成绩 90-100分打印【优秀A】80-90分打印【优秀A-】70-80分打印【中等B】60-70打印【中等B-】60及以下打印【同学还需努力】 我们会写如下代码 // 0grade100if (grade 90 grade 100) {System.out.println(【优秀A】);} else if (grade 80 grade 90) {System.out.println(【优秀A-】);} else if (grade 70 grade 80) {System.out.println(【中等B】);} else if (grade 60 grade 70) {System.out.println(【中等B-】);} else {System.out.println(【同学还需努力】 );}毋庸置疑上述代码完全正确可以满足业务要求但考虑到未来业务的扩展性与代码的可阅读性大量的if、else语句使代码不够优雅随着后续业务的增加分类可能越来越细岂不是要嵌套成百上千层。接下来考虑使用函数式接口策略模式的思想完成代码改造。 2.代码改造 2.1 创建函数式策略接口 创建自定义函数式策略接口 /*** 函数式策略接口*/ FunctionalInterface public interface GradeFuncInterface {/*** 打印成绩方法* param grade 实际成绩*/void printStudentGrade(Integer grade); }2.2 创建策略方法类 创建策略方法类相关注释已在代码中标注 import java.util.HashMap; import java.util.Map; import java.util.function.Predicate;/*** 策略方法*/ public class GradeStrategy {/*** 存储策略逻辑* 这里使用到了另外一个JDK提供的函数式接口Predicate里面几个方法很简单大家感兴趣可以点进去阅读下底层源码*/private final MapPredicateInteger, GradeFuncInterface gradeMap new HashMap();/*** 无参构造*/public GradeStrategy() {gradeMap.put(grade - this.determineGrade(grade, 100, 90), ((grade) - System.out.println(【优秀A】)));gradeMap.put(grade - this.determineGrade(grade, 90, 80), ((grade) - System.out.println(【优秀A-】)));gradeMap.put(grade - this.determineGrade(grade, 80, 70), ((grade) - System.out.println(【中等B】)));gradeMap.put(grade - this.determineGrade(grade, 70, 60), ((grade) - System.out.println(【中等B-】)));gradeMap.put(grade - this.determineGrade(grade, 60, -1), ((grade) - System.out.println(【同学还需努力】)));}/*** 判断成绩的区间* param grade 实际成绩* param maxGrade 最大成绩* param minGrade 最小成绩* return*/private boolean determineGrade(Integer grade, Integer maxGrade, Integer minGrade) {if (grade minGrade grade maxGrade) {return true;}return false;}/*** 获取成绩区间* param grade*/public void getStudentGrade(Integer grade) {// 遍历策略mapfor (Map.EntryPredicateInteger, GradeFuncInterface entry : gradeMap.entrySet()) {if (entry.getKey().test(grade)) {entry.getValue().printStudentGrade(grade);return;}}System.out.println(学生成绩为 grade 无对应期间成绩请维护);} }3. 测试 3.1 创建测试类 测试类代码如下 public class StrategyTest {public static void main(String[] args) {GradeStrategy gradeStrategy new GradeStrategy();gradeStrategy.getStudentGrade(98);gradeStrategy.getStudentGrade(88);gradeStrategy.getStudentGrade(78);gradeStrategy.getStudentGrade(68);gradeStrategy.getStudentGrade(58);gradeStrategy.getStudentGrade(128);gradeStrategy.getStudentGrade(-18);}}3.2 运行结果 通过运行结果可知输出结果正确。 4. 总结 通过策略模式的思想函数式接口我们将大量的if else判断分解出来在调用端只需要调用策略类提供的方法使代码更加优雅当业务需要扩展时我们只需要加上对应策略即可使我们只用注重业务逻辑层的代码让运维更加方便简洁。 备注另外一种策略模式的使用见工厂模式策略模式
http://www.w-s-a.com/news/735024/

相关文章:

  • 描述对于营销型网站建设很重要飘红效果更佳教育培训排行榜前十名
  • 国外网站有哪些推荐的网站按关键词显示广告图片
  • 互联网招聘网站排名手机网站系统
  • 网站与云平台区别企业网站建设有什么要求
  • wordpress福利网站源码高端网站设计培训机构
  • 网站建设找客户招标网免费
  • 东莞食品网站建设扬州市住房建设局网站
  • 网站色彩心理建设网站的主要功能有哪些
  • 营销型网站建设运营企业宣传网页设计
  • 建设银行官方网站网址sem搜索
  • 简述建设网站的具体步骤网络建设方案ppt
  • 自建门户网站建设工程质量监理协会网站
  • 为企网站版面设计经历了哪几个阶段
  • 如何直到网站是用什么模板做的怎么在外贸公司拿订单
  • 网站专题制作酒店网站建设考虑的因素
  • 苏州招聘网站建设潍坊网站建设wfxtseo
  • 手机网站特效做互联网平台要多少钱
  • 做网站广告推广平台旅游网站后台管理系统
  • ppt模板下载免费素材网站php网站开发平台下载
  • 网站推广策划报告航空航天可以做游戏可以视频约会的网站
  • 云南建设学院的网站划分切片来做网站
  • 建设视频网站需要什么知识辽阳建设网站
  • 提供o2o网站建设打扑克网站推广软件
  • 制作简单门户网站步骤中国建设局网站查询
  • 漳州专业网站建设网站建设的面试要求
  • 有哪些网站是封面型汕头网站上排名
  • 自动优化网站软件没有了做的新网站做百度推广怎么弄
  • 高陵县建设局网站商标查询网站
  • 郑州建设网站哪家好东莞网络公司排行榜
  • 成都网站开发费用做行程的网站