大三學習進度50

2022-09-18 12:54:10 字數 1254 閱讀 4660

建造者模式(builder pattern)使用多個簡單的物件一步一步構建成乙個複雜的物件。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。

乙個 builder 類會一步一步構造最終的物件。該 builder 類是獨立於其他物件的。

意圖:將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。

主要解決:主要解決在軟體系統中,有時候面臨著"乙個複雜物件"的建立工作,其通常由各個部分的子物件用一定的演算法構成;由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定。

何時使用:一些基本部件不會變,而其組合經常變化的時候。

如何解決:將變與不變分離開。

關鍵**:建造者:建立和提供例項,導演:管理建造出來的例項的依賴關係。

應用例項:1、去肯德基,漢堡、可樂、薯條、炸雞翅等是不變的,而其組合是經常變化的,生成出所謂的"**"。 2、j**a 中的 stringbuilder。

優點:1、建造者獨立,易擴充套件。 2、便於控制細節風險。

缺點:1、產品必須有共同點,範圍有限制。 2、如內部變化複雜,會有很多的建造類。

使用場景:1、需要生成的物件具有複雜的內部結構。 2、需要生成的物件內部屬性本身相互依賴。

注意事項:與工廠模式的區別是:建造者模式更加關注與零件裝配的順序。

我們假設乙個快餐店的商業案例,其中,乙個典型的**可以是乙個漢堡(burger)和一杯冷飲(cold drink)。漢堡(burger)可以是素食漢堡(veg burger)或雞肉漢堡(chicken burger),它們是包在紙盒中。冷飲(cold drink)可以是可口可樂(coke)或百事可樂(pepsi),它們是裝在瓶子中。

我們將建立乙個表示食物條目(比如漢堡和冷飲)的 item 介面和實現 item 介面的實體類,以及乙個表示食物包裝的 packing 介面和實現 packing 介面的實體類,漢堡是包在紙盒中,冷飲是裝在瓶子中。

然後我們建立乙個 meal 類,帶有 item 的 arraylist 和乙個通過結合 item 來建立不同型別的 meal 物件的 mealbuilder。builderpatterndemo 類使用 mealbuilder 來建立乙個 meal。

大三學習進度67

sort 方法可以指定公升序或降序排序。sort 方法第乙個引數為要排序的字段,第二個字段指定排序規則,1為公升序,1為降序,預設為公升序。對欄位 alexa 按公升序排序 usr bin python3importpymongomyclient pymongo.mongoclient mongod...

大三學習進度45

spring 的事務管理是基於 aop 實現的,而 aop 是以方法為單位的。spring 的事務屬性分別為傳播行為 隔離級別 唯讀和超時屬性,這些屬性提供了事務應用的方法和描述策略。在 j a ee 開發經常採用的分層模式中,spring 的事務處理位於業務邏輯層,它提供了針對事務的解決方案。在 ...

大三學習進度44

1.建立專案 在 myeclipse 中建立乙個名稱為 springdemo03 的 web 專案,將 spring 支援和依賴的 jar 包複製到 web 專案的 web inf lib 目錄中,並發布到類路徑下。2.建立介面 customerdao 在專案的 src 目錄下建立乙個名為 com....