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

    建造者模式:是对象的创建模式。建造模式可以将一个产品的内部表象与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。

    建造模式可以有三种角色:产品、建造器、把建造器组装成产品的对象(导演者)

    下面上代码:

    产品类:

    package build;
    
    /**
     * 产品
     */
    public class Product {
    
        private String part1;
    
        private String part2;
    
        public String getPart1() {
            return part1;
        }
    
        public void setPart1(String part1) {
            this.part1 = part1;
        }
    
        public String getPart2() {
            return part2;
        }
    
        public void setPart2(String part2) {
            this.part2 = part2;
        }
    }
    View Code

    建造器接口:

    package build;
    
    /**
     * 建造器
     */
    public interface Builder {
        void buildPart1();
    
        void builPart2();
    
        Product retrieveResult();
    }
    View Code

    具体实现建造器接口实现类:

    package build;
    
    public class ConcreteBuilder implements Builder {
    
        private Product product = new Product();
        @Override
        public void buildPart1() {
            product.setPart1("构建第一部分");
        }
    
        @Override
        public void builPart2() {
            product.setPart2("构建第二部分");
        }
    
        @Override
        public Product retrieveResult() {
            return product;
        }
    }
    View Code

    导演类:

    package build;
    
    /**
     * 组装建造器的导演者
     */
    public class Director {
        /**
         * 持有当前需要使用的建造器对象
         */
        private Builder builder;
    
        public Director(Builder builder) {
            this.builder = builder;
        }
    
        public void construct(){
            builder.buildPart1();
            builder.builPart2();
        }
    }
    View Code

    Client类:

    package build;
    
    public class Client {
    
        public static void main(String[] args) {
            Builder builder = new ConcreteBuilder();
            Director director = new Director(builder);
            director.construct();
            Product product = builder.retrieveResult();
            System.out.println(product.getPart1());
            System.out.println(product.getPart2());
        }
    }
    View Code
  • 相关阅读:
    thinkpad--Windows8 F11一键恢复方法
    ThinkPad---Windows8更换Windows7方法
    断网问题360解决方案
    网络故障诊断指南
    重装系统指南
    题目1123:采药
    题目1019:简单计算器
    题目1012:畅通工程
    你的隐私数据真的安全吗之memset()使用分析
    高光谱图像处理深度学习方法综述(一)
  • 原文地址:https://www.cnblogs.com/hujinshui/p/9551048.html
Copyright © 2011-2022 走看看