美文网首页
java 8 笔记(一) 通过行为参数化传递代码

java 8 笔记(一) 通过行为参数化传递代码

作者: 剪刀手丶爱德华 | 来源:发表于2018-09-03 15:35 被阅读5次

案列:通过颜色筛选苹果
一般代码逻辑写法

public List<Apple> filterApple(List<Apple> apples){
        List<Apple> result = new ArrayList<Apple>();
        for(Apple apple:apples){
            if("green".equals(apple.getColor())){
                result.add(apple);
            }
        }
        return result;
    }

那么问题来了如果想筛选其他颜色的苹果,就要重新写一个筛选代码,而且这些代码大部分都是重复的。我们也可以修改代码,将颜色作为参数传递过去。但是新的问题又来了,如果想筛选苹果的重量,苹果的种类等等,就要加更多的参数,方法里面还要做多个判断代码又有大部分重复而且维护变的复杂。

使用行为参数化

public List<Apple> filerApple(List<Apple> apples, Predicate<Apple> p){
        List<Apple> result = new ArrayList<Apple>();
        for (Apple apple:apples){
            if(p.test(apple)){
                result.add(apple);
            }
        }
        return result;
    }


List<Apple> apple1 = filerApple(apples,(Apple apple) -> "red".equals(apple.getColor()));//筛选红苹果
List<Apple> apple2 = filerApple(apples,(Apple apple) -> apple.getWeight()>150);//筛选大于150g的苹果

上面就是通过行为filerApple只是做了筛选的操作,至于筛选什东西则通过行为参数传过来。使代码简洁易读。

相关文章

  • java 8 笔记(一) 通过行为参数化传递代码

    案列:通过颜色筛选苹果一般代码逻辑写法 那么问题来了如果想筛选其他颜色的苹果,就要重新写一个筛选代码,而且这些代码...

  • 【Java 8实战笔记】通过行为参数化传递代码

    通过行为参数化传递代码 行为参数化是可以帮助你处理频繁变更的需求的一种软件开发模式。它意味着拿出一个代码块,将它准...

  • 2018-09-25

    java学习笔记(三) 简单的讲讲行为参数化传递代码,这也是Java8实战的第二章 应对不断变化的需求 在软件工程...

  • java8之通过行为参数化传递代码

    在实习的这一段时间里,我深刻体会到一个道理,就是用户的需求不断的在变化,因而自己的代码也要进行重构,这说明了一个问...

  • 通过行为参数化传递代码

    基础概念 在软件工程中,一个众所周知的问题是,不管你做什么,用户的需求肯定会变。行为参数化就是可以帮助你处理频繁变...

  • 通过行为参数化传递代码

    行为参数化是可以帮助你处理频繁变更的需求的一种软件开发模式 引言 1.首先我们看下实现从苹果列表中选出所有的绿色的...

  • Java8新特性

    Java8新特性 Project 01 给出了行为参数化传递代码的方式 定义一个标准的谓词模板 用ApplePre...

  • 1.2 用行为参数化把代码传递给方法

    Java 8增加了把方法(你的代码)作为参数传递给另一个方法的能力。把这一概念称为行为参数化。Stream API...

  • JAVA8(二)

    行为参数化 什么是行为参数化 个人理解:把行为抽象出来进行封装,让代码适应需求的变化,并把行为或代码作为参数传递,...

  • 通过行为参数传递代码

    应对不断变化的需求 目标 在软件工程中一个众所周知的问题就是,不管你做什么,用户的需求肯定会变。比如一位农民第一天...

网友评论

      本文标题:java 8 笔记(一) 通过行为参数化传递代码

      本文链接:https://www.haomeiwen.com/subject/vpgbwftx.html