概念:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
核心:用户只需要指定需要建造的类型,不需要知道建造的过程和细节。

建造者设计模式

image.png

java代码:

  1. public class BuilderTest {
  2. public static void main(String[] args) {
  3. Director director = new Director(new ConcreteBuilderA());
  4. director.Construct();
  5. }
  6. }
  7. //建造者接口
  8. public abstract class Builder {
  9. public abstract void BuildPartA();
  10. public abstract void BuildPartB();
  11. public abstract void BuildPartC();
  12. }
  13. //指挥者
  14. public class Director {
  15. Builder builder;
  16. public Director(Builder builder){
  17. this.builder = builder;
  18. }
  19. public void Construct(){
  20. builder.BuildPartA();
  21. builder.BuildPartB();
  22. builder.BuildPartC();
  23. }
  24. }
  25. public class ConcreteBuilderA extends Builder{
  26. @Override
  27. public void BuildPartA() {
  28. System.out.println("构建A对象A部分");
  29. }
  30. @Override
  31. public void BuildPartB() {
  32. System.out.println("构建A对象B部分");
  33. }
  34. @Override
  35. public void BuildPartC() {
  36. System.out.println("构建A对象C部分");
  37. }
  38. }
  39. public class ConcreteBuilderB extends Builder {
  40. @Override
  41. public void BuildPartA() {
  42. System.out.println("构建B对象A部分");
  43. }
  44. @Override
  45. public void BuildPartB() {
  46. System.out.println("构建B对象B部分");
  47. }
  48. @Override
  49. public void BuildPartC() {
  50. System.out.println("构建C对象C部分");
  51. }
  52. }