重叠构造器、Builder模式
?? 当存在做个参数时,但是有些是必选的,有些事不必选的情况下用重叠构造器、Builer模式比较好
???? 重叠构造器
???
public class BuilderModel {/** * @param args */public static void main(String[] args) {BuilderModel.Student stu = new BuilderModel.Student("张三",22);method1(stu);method2(stu);}public static class Student{public String name;public int age; public Student(String name,int age){ this.name = name; this.age = age; }}public static void method1(Student stu){ stu.name = "李四";}public static void method2(Student stu){ System.out.println(stu.name);}}?
对于方法中的参数是对象时,前面加final是不影响修改这个对象里面的方法的。
?
?如有任何缺陷请大家不吝赐教,必当洗耳恭听!
?
?
?
?
?
?
?
?
?
?
?
?
?
1 楼 xurichusheng 2012-01-12 不直接诶生成想要的对象,而是让客户端利用所有必要的参数调用构造器(或者静态工厂),得到一个builder对象。然后客户端在builder对象上调用类似于setter的方法,来设置每个相关的可选参数。
最后,客户端调用无参的build方法来生成不可变的对象。