Java 如何将特定于区域的逻辑从正常流中分离出来?
我有一个类名ProductValidation,在这个类中有一个名为validate的eis函数,它迭代产品列表。在检查区域的函数中。此外,还有其他具有区域特定检查的功能。我想将此区域特定的检查移动到其他类。如何即兴编写下面的代码Java 如何将特定于区域的逻辑从正常流中分离出来?,java,java-8,object-oriented-analysis,Java,Java 8,Object Oriented Analysis,我有一个类名ProductValidation,在这个类中有一个名为validate的eis函数,它迭代产品列表。在检查区域的函数中。此外,还有其他具有区域特定检查的功能。我想将此区域特定的检查移动到其他类。如何即兴编写下面的代码 class Product{ int id, long price; String region; Product(int id, long price, String region){ this.id = id;
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)
类产品{
int id,
多头价格;
弦区;
产品(整数id、长价格、字符串区域){
this.id=id;
这个价格=价格;
这个区域=区域;
}
//id、price和locId的getter
}
类产品验证{
公共静态验证(列表,长[]价格){
对于(int i=0;i
您可以将该测试表示为双重指示
BiPredicate<Product, String> productRegionSearch = (p,s) -> p.getRegion().equals(s);
存储在该名称数组中的
price
与存储在Product
同名字段中的price
之间的关系是什么?为什么要将价格设置为零;这意味着什么?这看起来非常像一个。
if(productRegionSearch.test(list.get(i), "ASIA"))...