彻底理解android 建造者模式
2017-10-26 01:36
218 查看
Android设计模式之建造者模式(builder pattern)
http://blog.csdn.net/nugongahou110/article/details/50395698
使用builder设计模式完美的优点:具有必填属性和可选属性的区分,更重要的是 可读性很强。
public Student getStudent(){
return new Student.StudentBuilder(1,"小明")//必填属性在构造方法中赋值
.setAge(1)//设置可选属性 年龄
.setGender(1)//设置可选属性 性别 默认1为男
.build();//对象构建完毕的标识,返回Student对象
}
值得注意的几点:
1.Student的构造方法是私有的,也就是说我们不能直接new出Student对象
2.我们又将Student的属性用final修饰了,并且我们在构造方法中都为他们进行了初始化操作,我们只提供了getter方法
3.StudentBuilder的属性中只给我们必须的属性添加的final修饰,所以我们必须在StudentBuilder的构造方法中为他们初始化
builder模式另一个重要特性是:它可以对参数进行合法性验证,如果我们传入的参数无效,我们可以抛出一个IllegalStateException异常,但是我们在哪里进行参数合法性验证也是有讲究的:那就是在对象创建之后进行合法性验证。我们修改StudentBuilder的build()方法
public Student build(){
Student student = new Student(this);
if (student.getAge()>120){
throw new IllegalStateException("年龄超出限制");
}
return student;
}
http://blog.csdn.net/nugongahou110/article/details/50395698
使用builder设计模式完美的优点:具有必填属性和可选属性的区分,更重要的是 可读性很强。
public Student getStudent(){
return new Student.StudentBuilder(1,"小明")//必填属性在构造方法中赋值
.setAge(1)//设置可选属性 年龄
.setGender(1)//设置可选属性 性别 默认1为男
.build();//对象构建完毕的标识,返回Student对象
}
值得注意的几点:
1.Student的构造方法是私有的,也就是说我们不能直接new出Student对象
2.我们又将Student的属性用final修饰了,并且我们在构造方法中都为他们进行了初始化操作,我们只提供了getter方法
3.StudentBuilder的属性中只给我们必须的属性添加的final修饰,所以我们必须在StudentBuilder的构造方法中为他们初始化
builder模式另一个重要特性是:它可以对参数进行合法性验证,如果我们传入的参数无效,我们可以抛出一个IllegalStateException异常,但是我们在哪里进行参数合法性验证也是有讲究的:那就是在对象创建之后进行合法性验证。我们修改StudentBuilder的build()方法
public Student build(){
Student student = new Student(this);
if (student.getAge()>120){
throw new IllegalStateException("年龄超出限制");
}
return student;
}
相关文章推荐
- [原]深刻理解activity启动模式,彻底理解android的四种启动模式,尤其singleTask
- 深刻理解activity启动模式,彻底理解android的四种启动模式,尤其singleTask
- Android 图文教学让你彻底理解activity启动模式
- 深入理解Android中的建造者模式
- Android的四种启动模式-----深入理解
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- 在Android中探秘建造者模式
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- Android状态栏微技巧,带你真正理解沉浸式模式
- 再次图文理解Android 中Activity的启动模式
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)-转载郭霖
- Android Handler、Message完全解析,带你从源码的角度彻底理解
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- android知识回顾----观察者模式理解和举例
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- Android设计模式(一)—— 建造者模式
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)