• 技术文章 >Java >java教程

    详细介绍Android建造者(Builder)模式的案例

    黄舟黄舟2017-03-11 11:47:42原创528
    关于 Builder 模式 详述://m.sbmmt.com/java-article-355847.html

    先来张图

    看到 Android 中 使用了 Builder 模式的地方还是很多的。

    使用时 大概如下:

    Notification noti = new Notification.Builder(context).build();AlertDialog dialog = new AlertDialog.Builder(context).create();

    在builder()和create()之前 还可以创建多个属性,类似下面的例子

    示例

    /**
     * author : stone
     * email  : aa86799@163.com
     * time   : 15/7/3 10 26
     */
    public class TestBuilder {
    
        private int a;
        private String b;
    
        public int getA() {
            return a;
        }
    
        public String getB() {
            return b;
        }
    
        protected TestBuilder(Builder builder) {
            this.a = builder.ma;
            this.b = builder.mb;
        }
    
        public static class Builder {
            private int ma;
            private String mb;
    
            public Builder createA(int a) {
                this.ma = a;
                return this;
            }
    
            public Builder showB(String b) {
                this.mb = b;
                return this;
            }
    
            public TestBuilder build() {
                return new TestBuilder(this);
            }
        }
    
        public static void main(String[] args) {
            TestBuilder tb = new TestBuilder.Builder()
                    .createA(88)
                    .showB("susan")
                    .build();
            
        }
    }


    注:

    1. 这里是通过静态内部类Builder来构造零件

    2. 每个零件的构建方法返回该构建者

    3. 外部实际对象的构造方法的访问符 应是 private或protected,使其只能通过内部类来创建

    与普通的Java-Bean的对比:

    Bean中用setter 或 构造方法中一堆参数, 来给属性赋值

    这里,用new Builder().a.b.c...build();

    以上就是详细介绍Android建造者(Builder)模式的案例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:Java实现解释器(Interpreter)模式的示例代码 下一篇:Android适配器(Adapter)、观察者(Observer) 模式的代码分析(图)
    大前端线上培训班

    相关文章推荐

    • 理解java8中java.util.function.*pojo反射新方法(附代码)• 浅析安卓app和微信授权登录及分享完整对接(代码分享)• 教你一招搞定时序数据库在Spring Boot中的使用• 一招教你使用java快速创建Map(代码分享)• PlayFramework 完整实现一个APP(十一)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网