您的位置:首页 > 移动开发 > Android开发

彻底理解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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: