设计模式之建造者模式

傷城~ 2022-09-07 10:00 241阅读 0赞

建造者模式也是创建型模式中的一种,所谓的创建型模式,指的是如何创建对象,关注的是对象的创建过程。

建造者模式是将一个复杂对象分解成多个相对简单的子模块进行创建,比如游戏中常见的人物模型,在大多数游戏中,都有游戏角色的创建,把头部中的脸型、发行、穿着等当作人物创建的局部对象处理。

创建者模式的UML图如下:
在这里插入图片描述
示例代码:

  1. // 建造者模式由产品、抽象建造者、具体建造者和指挥者四个部分组成
  2. // 产品
  3. class Product {
  4. private String partA;
  5. private String partB;
  6. private String partC;
  7. public void setPartA(String partA) {
  8. this.partA = partA;
  9. }
  10. public void setPartB(String partB) {
  11. this.partB = partB;
  12. }
  13. public void setPartC(String partC) {
  14. this.partC = partC;
  15. }
  16. public void show() {
  17. System.out.println("产品展示....")
  18. }
  19. }
  20. // 抽象建造者
  21. abstract class Builder {
  22. protected Product product = new Product();
  23. public abstract void buildPartA();
  24. public abstract void buildPartB();
  25. public abstract void buildPartC();
  26. public Product getResult() {
  27. return product;
  28. }
  29. }
  30. // 具体建造者
  31. public class ConcreteBuilder extend Builder {
  32. public void buildPartA() {
  33. product.setPartA("建造 PartA");
  34. }
  35. public void buildPartB() {
  36. product.setPartB("建造 PartB");
  37. }
  38. public void buildPartC() {
  39. product.setPartC("建造 PartC");
  40. }
  41. }
  42. // 指挥者
  43. class Director {
  44. private Builder builder;
  45. public Director(Builder builder) {
  46. this.builder = builder;
  47. }
  48. // 产品构建与组装方法
  49. public Product construct() {
  50. builder.buildPartA();
  51. builder.buildPartB();
  52. builder.buildPartC();
  53. return builder.getResult();
  54. }
  55. }
  56. // 客户类
  57. class Client {
  58. public static void main(String[] args) {
  59. Builder builder = new Builder(); // 建造者
  60. Director director = new Director(builder); // 指挥者
  61. Product product = director.getResult(); // 产品
  62. product.show();
  63. }
  64. }

建造者模式由四个部分组成:产品对象、抽象建造者、具体建造者和指挥者。

发表评论

表情:
评论列表 (有 0 条评论,241人围观)

还没有评论,来说两句吧...

相关阅读

    相关 设计模式建造模式

    建造者模式也是创建型模式中的一种,所谓的创建型模式,指的是如何创建对象,关注的是对象的创建过程。 建造者模式是将一个复杂对象分解成多个相对简单的子模块进行创建,比如游戏中常见

    相关 设计模式——建造模式

    > 设计模式: > > 前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定。而是一套用来提高代码可复用性、可维护性、可读性、稳健性、以及安全性的解决方案