• 建造者模式


    建造者模式

    建造者模式(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;
        }
    }
    
    
  • 相关阅读:
    uva 408 Uniform Generator
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 不同单词个数统计
    Java实现 蓝桥杯VIP 算法提高 不同单词个数统计
  • 原文地址:https://www.cnblogs.com/huangshen/p/13300109.html
Copyright © 2020-2023  润新知