【建造者模式應用場景舉例】
比如在玩
現在擁有低配置電腦的人不在少數
【建造者模式解釋】
類型
將一個復雜對象的構建與它的表示分離
【建造者模式UML圖】
【建造者模式
新建地圖接口
package map_package;
public interface map_interface {
public void create_weather();
public void create_house();
public void create_tree();
public void create_way();
}
新建晴天地圖類
package map_package;
public class map_sun implements map_interface {
public void create_weather() {
System
}
public void create_house() {
System
}
public void create_tree() {
System
}
public void create_way() {
System
}
}
新建陰天地圖類
package map_package;
public class map_cloudy implements map_interface{
public void create_weather() {
System
}
public void create_house() {
System
}
public void create_tree() {
System
}
public void create_way() {
System
}
}
新建高畫質builder建造者類
package map_build;
import map_package
public class map_build_adv {
private map_interface map_interface_ref;
public map_build_adv(map_interface map_interface_ref) {
super();
this
}
public void create_map() {
System
// 創建的順序很重要 從天空往路面創建
map_interface_ref
map_interface_ref
map_interface_ref
map_interface_ref
}
}
新建低畫質builder建造者類
package map_build;
import map_package
public class map_build_low {
private map_interface map_interface_ref;
public map_build_low(map_interface map_interface_ref) {
super();
this
}
public void create_map() {
System
// 創建的順序很重要 從天空往路面創建
map_interface_ref
map_interface_ref
// map_interface_ref
map_interface_ref
}
}
新建客戶端運行類
package run_main;
import map_build
import map_build
import map_package
import map_package
public class run_main {
public static void main(String[] args) {
map_cloudy map_cloudy = new map_cloudy();
map_build_adv map_build_adv = new map_build_adv(map_cloudy);
map_build_adv
System
map_sun map_sun = new map_sun();
map_build_low map_build_low = new map_build_low(map_sun);
map_build_low
}
}
程序運行結果如下
創建一個高畫質的地圖
陰天
房了上玻璃發暗
樹的顏色是深綠色
路面有些潮濕
創建一個低畫質的地圖
晴天
房了上玻璃發亮
路面有些干燥
從程序中可以看到
本程序中有
map_interface_ref
map_interface_ref
map_interface_ref
map_interface_ref
必須得執行
【建造者模式
建造者模式builder示例代碼
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27540.html