Java Lambda 策略模式

策略模式代表了解决一类算法的通用解决方案,可以在运行时选择使用哪种方案。

  • 不使用Lambda表达式时策略模式实现方式。
public interface FilterApple {public boolean filter(String s);
}
public class ByRedColorFilterApple implements FilterApple {@Overridepublic boolean filter(String s) {return s.equalsIgnoreCase("red");}}
public class ByGreenColorFilterApple implements FilterApple {@Overridepublic boolean filter(String s) {return s.equalsIgnoreCase("green");}}
FilterApple redColorApple = new ByRedColorFilterApple();
boolean isRedColorApple = redColorApple.filter("red");
System.out.println(isRedColorApple);FilterApple greenColorApple = new ByGreenColorFilterApple();
boolean isGreenColorApple = greenColorApple.filter("green");
System.out.println(isGreenColorApple);
  • 使用Lambda表达式时策略模式实现方式。
@FunctionalInterface
public interface FilterApple {public boolean filter(String s);
}
FilterApple redColorApple = (String s) -> s.equalsIgnoreCase("red");
boolean isRedColorApple = redColorApple.filter("red");
System.out.println(isRedColorApple);FilterApple greenColorApple = (String s) -> s.equalsIgnoreCase("green");
boolean isGreenColorApple = greenColorApple.filter("green");
System.out.println(isGreenColorApple);

这样就不需要声明新的类来实现不同的策略,通过直接传递Lambda表达式就能达到同样的目的,并且还更简洁。

Java Lambda 策略模式相关推荐

  1. Java使用策略模式替换掉 if else

    Java使用策略模式替换掉 if else 我们的代码中常常大量的使用 if else ,如果条件在不断的增加,我们就需要继续在后面增加if else,代码就会越来越臃肿,可读性差,后期非常不好维护, ...

  2. Java设计模式-策略模式作业

    Java设计模式-策略模式作业,所有类和接口均在一个package内 文章目录 前言 一.作业内容 二.具体实现 1.类图 2.Strategy接口 3.PreCopyStrategy类 4.Post ...

  3. java计数器策略模式_策略模式与外观模式 | 学步园

    1.策略 :定义不同的 2. 例子:随机生成宠物,并统计各种宠物生成数量. a) 抽象类:PetCreator,用于随机生成宠物. package context; import java.util. ...

  4. java设计模式---策略模式

    1,什么是策略模式? 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 2,策略模式有什么好处? 策略模式的好处在于你可以动态的改变对象 ...

  5. java使用策略模式(进阶篇)

    介绍 策略模式是一个非常简单且常用的设计模式,策略模式最常见的作用就是解决代码中冗长的 if-else 或 switch 分支判断语句. 本文后半部分应该会让熟悉策略模式的同学也会有一些收获.本文重点 ...

  6. JAVA设计模式-策略模式

    1.1 需求背景 Background:M公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票打折方式,具体打折方案如下: (1)学生凭学生证可享受票价8折优惠: (2 ...

  7. Java设计模式----策略模式(Strategy)

    1.  策略模式: 策略模式,也称为政策模式,定义如下: 定义一组算法,将每个算法都封装起来,使他们可以相互转化 2.  策略模式的原理是面向对象的继承和多态.策略模式的3个角色 a. Strateg ...

  8. java计数器策略模式_java设计模式(二十一)--策略模式

    对于策略模式,我在很多面试题上看到过考察这一类的问题,这种模式也的确比较好用. 我感觉这种模式就是将不同实现的方法放到一个接口中,然后通过实现这个接口来实现不同的运行结果,这种模式有三部分构成: 策略 ...

  9. Java设计模式--策略模式

    策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合 策略模式就是用来封装算法的, ...

  10. java(15)-策略模式(Strategy Pattern)

    一.了解(都是跟张龙老师的视频学的): 1.策略模式:a)封装变化的概念.b) 编程中使用接口,而不是对接口的实现.这是面向接口的编程. 2.策略模式的定义: a)定义一组算法,将每个算法都封装起来, ...

最新文章

  1. gc java root_一个两年Java程序员的面试总结
  2. 大盘点 | 2020年21篇医学影像算法最佳综述
  3. .Net Core小技巧 - Swagger适配虚拟目录及二级目录
  4. boost::leaf::function_traits用法的测试程序
  5. Spock Primer 翻译
  6. NAND FLASH ECC
  7. redis lettuce_Redis Client Lettuce 5 GA发布
  8. Android Studio打包和引用aar
  9. python 天气雷达_python结合API实现即时天气信息
  10. 远程服务器 上传公钥,SecureCRT+Ubuntu SSH服务器的远程公钥登陆
  11. 统考计算机和英语百度网盘,《计算机专业英语》在线考试系统
  12. 设计灵感|大火C4D立体字效在海报中的应用
  13. python创建列表副本_Python编程15:Python列表的排序和列表的副本
  14. php redis auth 高并发,PHP+Redis高并发
  15. Hdu - 1210 - Eddy's 洗牌问题
  16. python 实现读取txt 并画三维图
  17. 查看服务器文件命令大全,查看服务器文件的命令
  18. Android 自定义仪表盘
  19. html 输入字数限制,说一说限制字数的输入框踩的坑
  20. android 9 vxp 闪退,XPrivacyLua限制了权限的应用无法打开

热门文章

  1. 数据分析师市场需求研究
  2. Windows 10 程序员计算器 HEX,DEC,OCT,BIN 的含义
  3. 计算机制图缺点,CAD与其它制图软件相比较的优缺点
  4. PRML Chapter01 练习题Exercise
  5. 数字通信系统的组成框图
  6. ToolsOh第4批收录
  7. C++二叉链表遍历理论基础
  8. JAVASSM框架面试题
  9. AIX系统修改用户密码依然无法登录
  10. 网关支付、银联代扣通道、快捷支付、银行卡支付分别是怎么样进行支付的?...