策略模式可以避免大量的if-else或者switch,因为相当于直接传入了策略标识,一般使用map作为存储策略的容器。
而可以使用函数式接口继续改进,仍然是使用map作为函数式接口的存储容器。
什么时候使用函数式接口Function<>?
函数式接口当然最多只能有一个抽象方法,当我们需要使用某个“动作”的时候,就需要使用函数式接口,因为再调用apply方法就相当于执行对应的动作。
它们之间的关系:
Lambda表达式简化了匿名内部类的创建过程。
而Function的实现方式包括Lambda表达式和匿名内部类,也其实就是用Lambda实现了Function的抽象方法
方法引用的使用:
当已有方法可以实现函数式接口的apply逻辑时,或者我需要使用某个现成方法的动作,那么何必要再手写apply逻辑也就是Lambda呢?
所以可以直接传递某个方法的引用,也就是传递的是该方法动作,将传入参数作为被引用方法的入参。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !