设计模式--builder模式

意图:

将一个复杂对象的构建与啊的表示分离,使得同样的创建过程可以用不同的表示。


                                                                            builder模式类图

/**
 * 
* @ClassName: Builder  
* @Description:  builder 类 分别创建一个对象中的每个属性
* @author 雨ゆこ
* @date 2018年4月26日
* @version yuko1.0
 */
public abstract class Builder {
	protected String title;
	protected String icon;
	protected String message;
	abstract void buildTitle();
	abstract void buildIcon();
	abstract void buildMessage();
	
	void getResult(){
		System.out.println(title);
		System.out.println(icon);
		System.out.println(message);
	}
}
/**
 * 
* @ClassName: ConformDialog  
* @Description:  builder 的实现类
* @author 雨ゆこ
* @date 2018年4月26日
* @version yuko1.0
 */
public class ConformDialog extends Builder{
	void buildTitle() {
		title = "确认对话框";
		
	}
	void buildIcon() {
		title = "确认图标";
		
	}

	void buildMessage() {
		message = "请确认";
	}
}
/**
 * 
* @ClassName: InfomationDialog  
* @Description: builder 实现类
* @author 雨ゆこ
* @date 2018年4月26日
* @version yuko1.0
 */
public class InfomationDialog  extends Builder{


	void buildTitle() {
		title = "信息标题";
	}


	void buildIcon() {
		icon = "信息图标";
	}


	void buildMessage() {
		message = "信息消息内容";
	}


}
/**
 * 
* @ClassName: Direator  
* @Description:  指挥家
*   		指挥对象的创建属性的创建工作
* @author 雨ゆこ
* @date 2018年4月26日
* @version yuko1.0
 */
public class Direator {
	Builder builder;
	public Direator(Builder b) {
		builder = b;
	}
	void create(){
		builder.buildTitle();
		builder.buildIcon();
		builder.buildMessage();
		builder.getResult();
	}
}
/**
 * 
* @ClassName: Yufan  
* @Description:  builder 测试类
* @author 雨ゆこ
* @date 2018年4月26日
* @version yuko1.0
 */
public class Yufan {
public static void main(String[] args) {
	Direator d  = new Direator(new ConformDialog());
	d.create();
	Direator d1 = new Direator(new InfomationDialog());
	d1.create();
}
}



猜你喜欢

转载自blog.csdn.net/yf289178199/article/details/80099484