首页 > 解决方案 > 如何编写与正常流程分开的区域特定逻辑?

问题描述

我有一个类名 ProductValidation,并且在该类中,有一个名为 validate 的 eis 函数迭代产品列表。在检查区域的函数内部。lly,还有其他功能具有特定于区域的检查。我想将此区域特定的检查移至不同的类。如何即兴创作下面的代码?

class Product{
    int id,
    long price;
    String region;

    Product(int id, long price, String region){
        this.id = id;
        this.price = price;
        this.region = region;
   }

   // getters for id,price and locId
}

Class ProductValidation{
   public static validate(List<Product> list, long[] prices){
     for(int i = 0; i < list.size();i++){
          if(list.get(i).getRegion().equals("ASIA"){ 
            long[i] = 0;
          }
      }
}


long[] price = {40, 90, 40};

List<Product> list = new ArrayList();
list.add(new Product(1,100, "ASIA"));
list.add(new Product(1,100, "AUS));
list.add(new Product(1,100, "EUROPE"));

 // call ProductValidation.validate(list, price)

标签: javajava-8object-oriented-analysis

解决方案


您可以将该测试表示为BiPrerdicate

BiPredicate<Product, String> productRegionSearch = (p,s) -> p.getRegion().equals(s);

并将其调用为

if(productRegionSearch.test(list.get(i), "ASIA"))...

推荐阅读