需求: 現有某種產品p,它有很多子系列產品p1,p2,p3.....,每個子產品都有不同的操作生產工序
怎麼獲取到所需的子產品呢?
-- new p1(), new p2(), new p3()....... ?
--使用工廠方法:乙個產品對應乙個子工廠,再來乙個排程者(string name)
可是工廠方法只負責=>生產原始產品, 還需要別的操作來繼續加工, 怎麼辦? 改造子工廠加入工序 f1(), f2() ?
那麼要加工進來的配件呢?工廠直接new 配件?這樣一來,工廠也脫離了本意,所以有一種「 建造者模式 」, 使用了工人的角色代替工廠, 解決產品需要加工的問題。
在eclipse 上開發:
第一級目錄: 產品抽象類+ 介面加工 + 工人排程者+ 配件父類(普通類)
//抽象產品類:
public class computer
public computer(string name)
public string tostring()
return builder.getproductpc();
}}
//配件父類
public class units
public units(string name)
public string getname()
public void setname(string name)
}
第二級目錄:具體產品類+ 具體配件類+ 具體單技能工人類
//具體子產品
public class computer_acer extends computer
public computer_acer(string name)}}
public class computer_dell extends computer
public computer_dell(string name)
}
//元件之 cpu
public class units_cpu extends units
public units_cpu(string name)
}//元件之 硬碟
public class units_disk extends units
public units_disk(string name)
}//元件之 快取條
public class units_ram extends units
public units_ram(string name)
}
//建造者1:專門負責製造acer pc
public class builder_acerpc implements builder
@override
public void addunits(units u)
@override
public computer getproductpc()
} //屬性:產品
@override
public computer makebasepc()
@override
public void addunits(units u)
@override
public computer getproductpc()
}public class builder_dellpc implements builder
@override
public void addunits(units u)
@override
public computer getproductpc()
}
測試類:使用junit
public class buildermodetest extends testcase );
manager manager;
//********************==開始junit測試***************====
public static void main(string args)
//*****=定義:各個測試方法*****==
//建立乙個管理者,給乙個工人
public void testacerpc( )
system.out.println(pc+"\n"); }
public void testdellpc( )
}
java設計模式 建造者模式
分為四部分 產品角色,抽象構建者,具體構建者,指揮者 建造者模式 使用者不需要知道具體的構造結構過程,只需要與指揮者進行溝通即可。指揮者根據不同的構建者得到不同的產品。構建者分裝了整個產品的構建,是的產品能夠完整的構建出來。產品角色 public class car 抽象構建者 public int...
Java設計模式 建造者模式
建造者模式就是一步一步的建立乙個複雜的物件,而且允許使用者指定複雜物件的型別和內容。建造者的模式結構一般如下圖所示。builder 類是乙個抽象類,用於定義一些建立子部件的方法,builder類中應該還有乙個 getresult 方法,用於將建立好的部件組裝成乙個產品返回。director 類又稱為...
java設計模式 建造者模式
適用場景 乙個物件有多個子物件構成,我們要建這個物件的時候,需要很多步驟,構建多個子物件,然後再由子物件構成乙個物件,我們就可以考慮用建造者模式 建造者本質 讓建造子物件的builder和裝配物件director解耦,從而建造出複雜的物件 舉個例子 我們來構建乙個電腦物件,它有滑鼠,顯示器,鍵盤等子...