簡(jiǎn)單地說(shuō),就好象我要一座房子住,可是我不知道怎么蓋(簡(jiǎn)單的砌墻,層次較低),也不知道怎么樣設(shè)計(jì)(建幾個(gè)房間,幾個(gè)門(mén)好看,層次較高),于是我需要找一幫民工,他們會(huì)砌墻,還得找個(gè)設(shè)計(jì)師,他知道怎么設(shè)計(jì),我還要確保民工聽(tīng)設(shè)計(jì)師的領(lǐng)導(dǎo),而設(shè)計(jì)師本身也不干活,光是下命令,這里砌一堵墻,這里砌一扇門(mén),這樣民工開(kāi)始建設(shè),最后,我可以向民工要房子了。在這個(gè)過(guò)程中,設(shè)計(jì)師是什么也沒(méi)有,除了他在腦子里的設(shè)計(jì)和命令,所以要房子也是跟民工要,記住了!
1,定義工人接口,就是能夠完成建造房子任務(wù)的人的通用要求。
java 代碼
-
-
- public interface Builder {
-
- public void makeWindow();
-
- public void makeFloor();
-
- public Room getRoom();
- }
2,定義設(shè)計(jì)師,他的職責(zé)是指揮房主指派給他的工人按照自己的設(shè)計(jì)意圖建造房子。
java 代碼
-
- public class Designer {
-
-
- public void order(Builder builder) {
- builder.makeWindow();
- builder.makeFloor();
- }
- }
3,民工,他負(fù)責(zé)具體事物的實(shí)施。
java 代碼
-
-
- public class Mingong implements Builder {
- private String window="";
- private String floor="";
-
- public void makeWindow() {
- window=new String("window");
- }
-
- public void makeFloor(){
- floor=new String("floor");
- }
-
-
- public Room getRoom() {
- if((!window.equals(""))&&(!floor.equals(""))) {
- System.out.println("room ready!");
- return new Room();
- }
- else return null;
- }
- }
4,房主,就是雇人,收房。
java 代碼
-
- public class Client {
-
- public static void main(String[] args) {
- Builder mingong = new Mingong();
- Designer designer = new Designer();
- designer.order(mingong);
- mingong.getRoom();
- }
- }