Your Life, Your Lab

Accept who you are and own your life.

策略模式 | Strategy Pattern

#Design Pattern #鐵人賽
定義一系列演算法,並將其封裝起來,使他們可以相互替換,演算法的變換不影響使用。
Design Pattern

觀察者模式 | Observer Pattern

#Design Pattern #鐵人賽
多個物件之間存在著一對多的依賴關係,當一個物件發生改變時,所有跟他有關的物件都會被通知且更新。例如:訂閱youtuber,發布新影片就會接收到通知即觀察者模式。
Design Pattern

備忘錄模式 | Memento Pattern

#Design Pattern #鐵人賽
備忘錄模式在不破壞封裝的前提下,儲存一個物件的某個狀態,以便於需要的時候將物件恢復到原先儲存的狀態。例如:後悔藥。
Design Pattern

狀態模式 | State Pattern

#Design Pattern #鐵人賽
有狀態的物件,把複雜的邏輯判斷分配到不同的狀態物件中,允許狀態物件在其內部狀態發生改變時改變行為。
Design Pattern

中介者模式 | Mediator Pattern

#Design Pattern #鐵人賽
定義一個 Mediator 物件用來封裝一組物件的互動方式。Mediator 藉由避免物件間相互直接的引用,從而降低它們之間的耦合程度,並且可以讓我們獨立地改變這些物件間的互動方式。
Design Pattern

迭代器模式 | Iterator Pattern

#Design Pattern #鐵人賽
迭代氣模式提供一種方法可以順序性讀取一個集合物件中的各個元素,而又不會暴露該物件的內部表示。如 Java 中的 Collection、List、Set、Map 等都包含了迭代器。
Design Pattern

命令模式 | Command Pattern

#Design Pattern #鐵人賽
命令模式將一個請求封裝成一個物件,讓你可用不同的請求對客戶進行參數化、對請求排隊或記錄請求日誌,以及支援可取消的操作。
Design Pattern

責任鏈模式 | Chain of Responsibility Pattern

#Design Pattern #鐵人賽
責任鏈模式就是將多個物件連成一條鏈,沿著這條鏈傳遞至每一個物件並處理請求,當這個物件沒有處理的權限時,能夠將這個請求,傳遞給下一個物件繼續處理。
Design Pattern

代理模式 | Proxy Pattern

#Design Pattern #鐵人賽
代理模式目的爲其他物件提供一種代理以控制對這個物件的訪問。應用可以為遠端代理、虛擬代理、保護代理、智慧代理等等。
Design Pattern

享元模式 | Flyweight Pattern

#Design Pattern #鐵人賽
享元模式是運用共享技術有效地支持大量細粒度的物件。他可以避免大量相似類的開銷,在軟體開發中如果需要生成大量細粒度的類別實體來表示數據,如果這些實體除了幾個參數外基本上都是相同的,這時候就可以使用享元模式來大幅度減少需要實體化類的數量。
Design Pattern

外觀模式 | Facade Pattern

#Design Pattern #鐵人賽
外觀模式為子系統中的一組接口提供一個統一的高層接口,使得子系統更容易使用。比方說,當要找銀行貸款時,我們只需要找專員,而專員把我們的資料拿到後,要回銀行各部門跑流程,最後才能核貸給我們。行員就是接口,銀行各部門就是子系統。
Design Pattern

裝飾者模式 | Decorator Pattern

#Design Pattern #鐵人賽
裝飾者模式可以想成買了一間房子不需要因為要裝潢,而改變整體結構。只需要在既有的結構上,加上要裝潢的材料即可。即動態將責任附加在物件上,若要擴展功能上,裝飾者提供比繼承更有彈性的替代方案。
Design Pattern

组合模式 | Composite Pattern

#Design Pattern #鐵人賽
組合模式就是將元件做分離,依照需求一一組裝起來,建立不同需求的物件。
Design Pattern

橋接模式 | Bridge Pattern

#Design Pattern #鐵人賽
橋接模式是將抽象部分與實現部分分離,使它們都可以獨立的變化。即用合成關係代替繼承關係。如同合成/聚合複用原則。
Design Pattern