将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
Main
public class Main {
public static void main(String[] args) {
ExampleBuild exampleBuild = new ExampleBuild();
exampleBuild.addExample(new Example1());
exampleBuild.addExample(new Example2());
exampleBuild.addExample(new Example3());
float num = exampleBuild.getNum();
System.out.println(num);
}
}
ExampleInterface
public interface ExampleInterface {
public String name();
public float price();
}
Example1
public class Example1 implements ExampleInterface {
@Override
public String name() {
return "Example1";
}
@Override
public float price() {
return 1;
}
}
Example2
public class Example2 implements ExampleInterface {
@Override
public String name() {
return "Example2";
}
@Override
public float price() {
return 2;
}
}
Example3
public class Example3 implements ExampleInterface {
@Override
public String name() {
return "Example3";
}
@Override
public float price() {
return 3;
}
}
ExampleBuild
public class ExampleBuild {
private List<ExampleInterface> exampleList = new ArrayList<ExampleInterface>();
//添加
public void addExample(ExampleInterface exampleInterface){
exampleList.add(exampleInterface);
}
//获取所有数量
public float getNum(){
float num = 0.0f;
for (ExampleInterface exampleInterface : exampleList) {
num += exampleInterface.price();
}
return num;
}
}