Builder 构建器

Builder 构建器

分离复杂对象的构建和表示
Builder 构建器 - 图1
创建一个构建器接口,有builderPart1、builderPart2等构建复杂对象各个部分的方法,以及builder返回复杂对象的方法。写几个不同的构建器接口的实现类。实现简单或者复杂的构建。

  1. //等待被构建的复杂对象
  2. public class Terrain {
  3. wall w;
  4. fort f;
  5. mine m;
  6. }
  7. class Wall {
  8. int a,b,c,d;
  9. public wall(int a,int b,int c,int d){
  10. this.a = a;
  11. this.b = b;
  12. this.c = c;
  13. this.d=d;
  14. }
  15. }
  16. // fort及mine 同 wall
  17. //builder 接口
  18. public interface BuilderTerrain {
  19. BuilderTerrain builderWall();
  20. BuilderTerrain builderFort();
  21. BuilderTerrain builderMine();
  22. Terrain builder();
  23. }
  24. //simpleBuilder 简单的构建
  25. public class SimpleBuilder implements BuilderTerrain{
  26. Terrain terrain = new Terrain();
  27. public BuilderTerrain builderWall(){
  28. terrain.w = new Wall(10,10,10,10);
  29. return this;
  30. }
  31. public BuilderTerrain builderFort(){
  32. terrain.f = new Fort(10,10,10,10);
  33. return this;
  34. }
  35. public BuilderTerrain builderMine(){
  36. terrain.m = new Mine(10,10,10,10);
  37. return this;
  38. }
  39. public Terrain builder(){
  40. return this.terrain;
  41. }
  42. }
  43. //complexBuilder复杂的构建,与simpleBuilder类似,只是builderPart方法实现略有不同。
  44. //main方法测试
  45. public static void main(String[] args){
  46. SimpleBuilder simple = new SimpleBuilder();
  47. Terrain terrain =simple.builderWall().builderFort().builderMine().builder();
  48. }