java設計模式 建造者模式

2021-08-15 18:59:43 字數 2459 閱讀 8247

需求:  現有某種產品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解耦,從而建造出複雜的物件 舉個例子 我們來構建乙個電腦物件,它有滑鼠,顯示器,鍵盤等子...