意图:
将一个复杂对象的构建与啊的表示分离,使得同样的创建过程可以用不同的表示。
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(); } }