package designpattern.builder; public class computer { public string computercase; public string monitor; public string keyboard; public string mouse; public string getcomputercase() { return computercase; } public void setcomputercase(string computercase) { this.computercase = computercase; } public string getmonitor() { return monitor; } public void setmonitor(string monitor) { this.monitor = monitor; } public string getkeyboard() { return keyboard; } public void setkeyboard(string keyboard) { this.keyboard = keyboard; } public string getmouse() { return mouse; } public void setmouse(string mouse) { this.mouse = mouse; } @override public string tostring() { return "computer [computercase=" + computercase + ", monitor=" + monitor + ", keyboard=" + keyboard + ", mouse=" + mouse + "]"; } }
package designpattern.builder; public interface computerbuilder { void assemblecomputercase(computer computer);// 组装主机 void assemblemonitor(computer computer);// 组装显示器 void assemblekeyboard(computer computer);// 组装键盘 void assemblemouse(computer computer);// 组装显示器 }
package designpattern.builder; public class gamecomputerbuilder implements computerbuilder { @override public void assemblecomputercase(computer computer) { computer.setcomputercase("水冷机箱"); } @override public void assemblemonitor(computer computer) { computer.setmonitor("4k显示器"); } @override public void assemblekeyboard(computer computer) { computer.setkeyboard("机械键盘"); } @override public void assemblemouse(computer computer) { computer.setmouse("人体工学鼠标"); } }
package designpattern.builder; public class amusementcomputerbuilder implements computerbuilder { @override public void assemblecomputercase(computer computer) { computer.setcomputercase("普通机箱"); } @override public void assemblemonitor(computer computer) { computer.setmonitor("普通显示器"); } @override public void assemblekeyboard(computer computer) { computer.setkeyboard("普通键盘"); } @override public void assemblemouse(computer computer) { computer.setmouse("普通鼠标"); } }
package designpattern.builder; public class computerbuilderdirect { public void assemblecomputer(computerbuilder computerbuilder, computer computer) { computerbuilder.assemblecomputercase(computer); computerbuilder.assemblemonitor(computer); computerbuilder.assemblekeyboard(computer); computerbuilder.assemblemouse(computer); } // 或者写成下面这样?可能具体情况具体分析吧 public computer assemblecomputer(computerbuilder computerbuilder) { computer computer = new computer(); computerbuilder.assemblecomputercase(computer); computerbuilder.assemblemonitor(computer); computerbuilder.assemblekeyboard(computer); computerbuilder.assemblemouse(computer); return computer; } }
package designpattern.builder; public class client { public static void main(string[] args) { computerbuilderdirect computerbuilderdirect = new computerbuilderdirect(); // 组装游戏型电脑 computer gamecomputer = new computer(); computerbuilderdirect.assemblecomputer(new gamecomputerbuilder(), gamecomputer); system.out.println("游戏型电脑:"); system.out.println(gamecomputer); // 组装普通娱乐型电脑 computer assemblecomputer = new computer(); computerbuilderdirect.assemblecomputer(new amusementcomputerbuilder(), assemblecomputer); system.out.println("普通娱乐型电脑:"); system.out.println(assemblecomputer); } }
游戏型电脑: computer [computercase=水冷机箱, monitor=4k显示器, keyboard=机械键盘, mouse=人体工学鼠标] 普通娱乐型电脑: computer [computercase=普通机箱, monitor=普通显示器, keyboard=普通键盘, mouse=普通鼠标]
如对本文有疑问, 点击进行留言回复!!
网友评论