美文网首页
Retrofit之Build模式

Retrofit之Build模式

作者: Android_小马范儿 | 来源:发表于2019-06-09 00:38 被阅读0次
简介:Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来,两者之间的耦合度也降到最低。
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

主要功能用来构建一个对象,根据不同的数据构建不同的复杂对象
构建一个Student对象

public class Student {
    private String name;
    private int age;
    private String location;

    public Student(String name, int age, String location) {
        this.name = name;
        this.age = age;
        this.location = location;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("Student{");
        sb.append("name='").append(name).append('\'');
        sb.append(", age=").append(age);
        sb.append(", location='").append(location).append('\'');
        sb.append('}');
        return sb.toString();
    }

    public static final class Builder {
        private String name;
        private int age;
        private String location;
        public Builder setName(String name) {
            this.name = name;
            return this;
        }
        public Builder setAge(int age) {
            this.age = age;
            return this;
        }
        public Student build() {
            if (location == null) {
                location = "初始化地址";
            }

            if(age==0){
                age=15;
            }
            if(name==null){
                name="无名氏";
            }
            return new Student(name, age, location);
        }
    }
}
public class BuildRunningResult {

    public static void main(String args[]) {

        Student student = new Student.Builder()
                .setName("小马哥")
                .setAge(18)
                .build();
        System.out.println("Build模式结果是="+student.toString());
         
        Student noNameStudent = new Student.Builder().setAge(20).build();
        System.out.println("Build模式无名字结果是="+noNameStudent.toString());
    }
}

运行后的结果如下:

Build模式结果是=Student{name='小马哥', age=18, location='初始化地址'}
Build模式无名字结果是=Student{name='无名氏', age=20, location='初始化地址'}

通过Build模式构建Student对象,可以设置不同的参数,如果不设置,则根据Build默认值初始化;这样便于根据不同的情况构建不同的复杂对象。

相关文章

  • Retrofit之Build模式

    简介:Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细...

  • Android - Retrofit2.0源码阅读笔记

    步骤一: Retrofit初始化: Build模式 参数:baseUrl : 请求域名callFactory : ...

  • 撸Retrofit2源码

    本文使用Retrofit-2.6.2源码 切入点: retrofit对象构造 new Retrofit.Build...

  • Retrofit源码跟读

    Retrofit官网 Retrofit的使用如下 1.Retrofit引用--在build.gradle中增加引用...

  • Retrofit 原理解析(一)

    从使用入口看整体的结构 retrofit 总流程 Retrofit#Builder#build() 方法 这是一...

  • Retrofit

    Retrofit设计模式 动态代理,装饰模式,建造者模式,抽象工厂模式,适配器模式 建造者模式创建Retrofit...

  • Retrofit源码分析

    Retrofit 源码分析 Retrofit地址 Retrofit分析-经典设计模式案例 RxAndroid Gi...

  • Retrofit源码赏析二 —— 主流程

    创建Retrofit实例 Retrofit采用构造者模式来创建实例。 Retrofit.Builder Retro...

  • retrofit 简单使用

    1. build.gradle implementation'com.squareup.retrofit2:ret...

  • Retrofit 工作原理总结

    Retrofit源码解析之请求流程概述Retrofit之Converter简单解析Retrofit之OkhttpC...

网友评论

      本文标题:Retrofit之Build模式

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