本文共 2859 字,大约阅读时间需要 9 分钟。
package builder;/** * 抽象deBuilder * @author lidong * */public abstract class Builder { /** * 设置主机 * @param board */ public abstract void buildBorad(String board); /** * 设置显示器 * @param display */ public abstract void buildDisplay(String display); /** * 设置操作系统 */ public abstract void buildOS(); /** * 创建机器 * @return */ public abstract Computer create(); }
package builder;/** * 计算机抽象类 * Product角色 * @author Administrator * */public abstract class Computer { protected String mBoard;//主板 protected String mDisplay;//显示器 protected String mOS;//系统 protected Computer() { } public String getmBoard() { return mBoard; } public void setmBoard(String mBoard) { this.mBoard = mBoard; } public String getmDisplay() { return mDisplay; } public void setmDisplay(String mDisplay) { this.mDisplay = mDisplay; } //抽象方法 public abstract void setOS(); @Override public String toString() { return "Computer [mBoard=" + mBoard + ", mDisplay=" + mDisplay + ", mOS=" + mOS + "]"; } }
package builder;/** * 具体的builder类,Window电脑 * @author lidong * */public class WindowBuilder extends Builder { private Computer mComputer = new WindowPC(); @Override public void buildBorad(String board) { mComputer.setmBoard(board); } @Override public void buildDisplay(String display) { mComputer.setmDisplay(display); } @Override public void buildOS() { mComputer.setOS(); } @Override public Computer create() { return mComputer; }}
package builder;/** * window 电脑 * @author lidong * */public class WindowPC extends Computer{ protected WindowPC() { super(); } @Override public void setOS() { mOS = "window 7"; }}
package builder;/** * Director 负责构建Compurter * @author lidong * */public class Dirctor { Builder mBuilder = null; public Dirctor(Builder mBuilder) { super(); this.mBuilder = mBuilder; } /** * 构建对象 * @param borad * @param display */ public void construct(String borad,String display) { mBuilder.buildBorad(borad); mBuilder.buildDisplay(display); mBuilder.buildOS(); }}测试类:
package builder;public class Test { public static void main(String[] args) { //构造器 Builder builder1 = new WindowBuilder(); Dirctor pcDirctor1 = new Dirctor(builder1); pcDirctor1.construct("英特尔2", "1G显卡"); System.out.println("Computer info ="+builder1.create().toString()); } }代码下载地址: