zoukankan      html  css  js  c++  java
  • 建造者模式

    建造者模式

    建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以 将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方 法可以构造出不同表现(属性)的对象。

    建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象 的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。

    1. Product(产品角色): 一个具体的产品对象。
    2. Builder(抽象建造者): 创建一个Product对象的各个部件指定的 接口/抽象类。
    3. ConcreteBuilder(具体建造者): 实现接口,构建和装配各个部件。
    4. Director(指挥者): 构建一个使用Builder接口的对象。它主要是用于创建一个 复杂的对象。它主要有两个作用,一是:隔离了客户与对象的生产过程,二是: 负责控制产品对象的生产过程。
    /**
     * 建造者抽象接口
     */
    public interface Builder {
        void buildName1();
        void buildName2();
        void buildName3();
        void buildName4();
    
    }
    
    
    
    /**
     * 建造任务实际承担者
     */
    public class ConcreteBuilder  implements Builder{
        @Override
        public void buildName1() {
            System.out.println("name1部分建造完成");
        }
    
        @Override
        public void buildName2() {
            System.out.println("name2部分建造完成");
        }
    
        @Override
        public void buildName3() {
            System.out.println("name3部分建造完成");
        }
    
        @Override
        public void buildName4() {
            System.out.println("name4部分建造完成");
        }
    }
    
    
    /**
     * 建造指挥者
     */
    public class Director {
    
        private Builder builder;
    
        public Director(Builder builder) {
            this.builder = builder;
        }
    
    
        public Product buildOK() {
            this.builder.buildName1();
            this.builder.buildName2();
            this.builder.buildName3();
            this.builder.buildName4();
            System.out.println("建造完成");
            return new Product();
        }
    }
    
    
    /**
     * 建造目标产品
     */
    public class Product {
    
        private String name1;
        private String name2;
        private String name3;
        private String name4;
    
        public String getName1() {
            return name1;
        }
    
        public void setName1(String name1) {
            this.name1 = name1;
        }
    
        public String getName2() {
            return name2;
        }
    
        public void setName2(String name2) {
            this.name2 = name2;
        }
    
        public String getName3() {
            return name3;
        }
    
        public void setName3(String name3) {
            this.name3 = name3;
        }
    
        public String getName4() {
            return name4;
        }
    
        public void setName4(String name4) {
            this.name4 = name4;
        }
    }
    
    
  • 相关阅读:
    第二十三讲:访问者模式
    第二十二讲:备忘录模式
    第二十讲:迭代模式
    第十九讲:职责链模式
    第十八讲:中介者模式
    UTC时间、GMT时间、本地时间、Unix时间戳
    【基础】SQL Server系统库的作用
    【基础】SQL Server系统库的作用
    【基础】SQL Server系统库的作用
    【收集】C#一些基础的面试题
  • 原文地址:https://www.cnblogs.com/huangshen/p/13300109.html
Copyright © 2011-2022 走看看