美文网首页
设计模式---构建者(Builder)

设计模式---构建者(Builder)

作者: RalapHao | 来源:发表于2017-09-27 17:41 被阅读0次

    介绍

    该模式为了将构建复杂对象的过程和他的部件解耦,使得构建构成和部件的表示隔离开。

    UML

    UML.png

    上代码

    package com.ralap.builder;
    
    /**
     * Created by ralap on 2017/9/27.
     */
    public class Computers {
        private final String mCpu;
        private final String mDisplay;
        private final String mOs;
    
        private Computers(Builder builder) {
            this.mCpu = builder.cpu;
            this.mDisplay = builder.display;
            this.mOs = builder.os;
        }
    
        public static class Builder {
            private final String cpu;
            private String display;
            private String os;
    
            public Builder(String cpu) {
                this.cpu = cpu;
            }
    
            public Builder display(String display) {
                this.display = display;
                return this;
            }
    
            public Builder os(String os) {
                this.os = os;
                return this;
            }
    
            public Computers create() {
                return new Computers(this);
            }
    
        }
    
        public String getmCpu() {
            return mCpu;
        }
    
        public String getmDisplay() {
            return mDisplay;
        }
    
        public String getmOs() {
            return mOs;
        }
    }
    
    

    说明

    1. Computers构造私有;
    2. 不可变参数使用final,防止后续修改;
    3. Bullder的设置参数使用链式

    优缺点:

    1. 优点:
      • 良好的封装性,使用构建者模式可以是客户端不必知道看平内部的组成细节;
      • 构建者独立,容易扩展;
    2. 缺点
    • 会产生多余的Builder对象,消耗内存;

    相关文章

      网友评论

          本文标题:设计模式---构建者(Builder)

          本文链接:https://www.haomeiwen.com/subject/xgwuextx.html