畫乙個小人,有頭、身體、兩手、兩腳就可以了。
/**
* 人類
* created by callmedevil on 2019/7/21.
*/public class person
public void drawbody()
public void drawhand()
public void drawleg()
}
public class test
}
頭 身體 兩手 兩腳
畫人的時候,頭身手腳是必不可少的,不管什麼人物,開發時是不能少的。但上面測試**中時各部分堆積起來,很容易漏寫,比如導致健全的人物卻少了一條「腿」。而且如果需要在別的地方用這些畫小人的程式怎麼辦?
/**
* 瘦人類
* created by callmedevil on 2019/7/21.
*/public class personthinbuilder
// 建造瘦子
public void build()
}
/**
* 胖人類
* created by callmedevil on 2019/7/21.
*/public class personfatbuilder
public class test2
}
瘦人類:
頭 身體 兩手 兩腳
胖人類:
頭 身體 兩手 兩腳
這樣寫的確達到了可以復用這兩個畫小人的目的,但容易「缺胳膊少腿」的問題,依然沒有解決,比如現在需要加乙個高個的小人,同樣會因為程式設計不注意,產生同樣問題。
將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。如果使用建造者模式,那麼使用者就只需指定需要建造的型別就可以得到它們,而具體建造的過程和細節就不需要知道了。
* 建造人抽象類
* created by callmedevil on 2019/7/21.
*/public abstract class personbuilder
public abstract void buildhead();
public abstract void buildbody();
public abstract void buildarmleft();
public abstract void buildarmright();
public abstract void buildlegleft();
public abstract void buildlegright();
}
/**
* 瘦人類2
* created by callmedevil on 2019/7/21.
*/public class personthinbuilder extends personbuilder
@override
public void buildhead()
@override
public void buildbody()
@override
public void buildarmleft()
@override
public void buildarmright()
@override
public void buildlegleft()
@override
public void buildlegright()
}
/**
* 胖人類2
* created by callmedevil on 2019/7/21.
*/public class personfatbuilder extends personbuilder
/**
* 建造人指揮者
* created by callmedevil on 2019/7/21.
*/public class persondirector
// 根據使用者的選擇建造小人
public void createperson()
}
public class test
}
瘦人類2:
頭 身體 左手 右手 左腳 右腳
胖人類2:
頭 身體 左手 右手 左腳 右腳
此時如果需要增加乙個高個子和矮個子的小人,應該怎麼做?
加兩個類,乙個高個子類和乙個矮個子類,都繼承personbuilder,然後客戶端呼叫即可。
大話設計模式學習(十) 建造者模式
建造者模式 將乙個複雜物件的構造與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式主要用於建立一些複雜的物件,這些物件內部構建之間的建造順序通常是穩定的,但物件內部的建構通常面臨著複雜的物件,它的好處在於使得建造 和表示 分離,由於建造者隱藏了該產品是如何組裝的,所以若需要改變乙個產品...
大話設計模式讀書筆記(十) 建造者模式
將乙個複雜物件的構建與他的表示分離,使同樣的構建過程可以建立不同的表示。具體產品類 public class product public void show 建造者介面 public inte ce builder建造者介面實現 public class concretebuilder imple...
大話設計模式 建造者模式
1 建造者模式 builder 又叫生成器模式,它是將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的比奧斯。如果我們用了建造者模式,那麼使用者就只需指定需要建造的型別就可以得到它們,而具體建造的過程和細節就不需知道了。2 建造者模式 builder 結構圖 3 建造者模式主要是用...