`
步青龙
  • 浏览: 291505 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

Builder设计模式

阅读更多
public class BuilderPattern {
	private String name ;
	private int age;
	private String email;
	BuilderPattern(Builder builder){
		this.name = builder.name;
		this.age = builder.age;
		this.email = builder.email;
	}
	public void printinfo(){
		System.out.println("name:"+this.name+"-----age:"+this.age+"----email:"+this.email);
	}
	public static void main(String[] args) {
		BuilderPattern bp = new BuilderPattern.Builder().setName("javaeye").setAge(23).setEamil("aa@qq.com").build(); 
		bp.printinfo();
	}
	private static class Builder{
		private String name ;
		private int age;
		private String email;
		public BuilderPattern build(){
			return new BuilderPattern(this);
		}
		public Builder(){
		}
		public Builder setName(String name){
			this.name = name;
			return this;
		}
		public Builder setAge(int age){
			this.age = age;
			return this;
		}
		public Builder setEamil(String email){
			this.email = email;
			return this;
		}
	}
}

 这种方式适合对于复杂的对象,简单的调用方式,避免了一行一行的setXxxx或者是 糊里糊涂的构造

1
1
分享到:
评论
2 楼 步青龙 2015-12-17  
white_crucifix 写道
我怎么觉得builder模式不是这样的,这不就是个链式么

Builder生成器模式,参考StringBuilder,比如append方法
1 楼 white_crucifix 2015-12-17  
我怎么觉得builder模式不是这样的,这不就是个链式么

相关推荐

Global site tag (gtag.js) - Google Analytics