欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Builder模式

程序员文章站 2022-05-29 07:53:16
个人博客 "http://www.milovetingting.cn" Builder模式 模式介绍 Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构建流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的 ......

个人博客

builder模式

模式介绍

builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构建流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。

模式定义

将一个复杂对象的构建与它的表示分离,使得同样的构建可以创建不同的表示。

使用场景

  1. 相同的方法,不同的执行顺序,产生不同的事件结果时。

  2. 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时。

  3. 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用。

  4. 当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时。

模式的简单实现

computer类

public class computer {

    private string mcpu;
    private string mscreen;
    private string mhd;

    public computer(string cpu, string screen, string hd) {
        this.mcpu = cpu;
        this.mscreen = screen;
        this.mhd = hd;
    }

    @override
    public string tostring() {
        return "computer [mcpu=" + mcpu + ", mscreen=" + mscreen + ", mhd=" + mhd + "]";
    }

}

computerbuilder类

public class computerbuilder {

    public static class builder {

        private string mcpu = "cpu";
        private string mscreen = "screen";
        private string mhd = "hd";

        public builder cpu(string cpu) {
            mcpu = cpu;
            return this;
        }

        public builder screen(string screen) {
            mscreen = screen;
            return this;
        }

        public builder hd(string hd) {
            mhd = hd;
            return this;
        }

        public computer build() {
            return new computer(mcpu, mscreen, mhd);
        }

    }

}

默认使用

public static void main(string[] args) {
        computer computer = new computerbuilder.builder().build();
        system.out.println(computer);
    }

输出日志

computer [mcpu=cpu, mscreen=screen, mhd=hd]

自定义参数

public static void main(string[] args) {
        computer computer = new computerbuilder.builder().cpu("cpu").screen("screen").hd("hd").build();
        system.out.println(computer);
    }

输出日志

computer [mcpu=cpu, mscreen=screen, mhd=hd]

小结

builder模式在android开发中较为常用,通常作为配置类的构建器,将配置的构建和表示分离开来,同时也是将配置从目标类中隔离出来,避免过多的setter方法。builder模式比较常见的实现形式是通过调用链实现,使得代码更简洁、易懂。