1. Composite Pattern
以樹狀的架構為例, 每個節點的物件都計成相同interface, 上層的可以包含下層的物件, 只要執行上層的物件, 被包含的物件也都會自動跑一輪.
2. Default Adapter Pattern
為了省事, 不想直接implement 某個 interface時, 利用中間加入一個abstract class 去 implement 原本要用的 interface. 以繼承這個 abtract class 的方式, 間接達到 implement 該 interface 的效果.
3. Object Adaptor Pattern
為了讓原先已開發好的class能依後來新訂定的, 但卻不相容的interface, 能夠依照新訂定 interface 的方式執行, 建立一個新的 Adapter 去implement 新建立的interface, 再利用use 的方式使用原本先開發好的class. 所定義的adapter既能符合新的interface, 又能使用原先已開發class的功能.
4. Decorator Pattern
就像是俄羅斯娃娃, 一層一層的把物件包起來, java io 就是一個實例. 與 Composite pattern 相異之處在於 Composite pattern 是一個比較有結構性的樹狀結構.
5. Command Pattern
將每一個動作, 都設計成一個實做 interface (Ex: Action interface) 的 class, 每個class都會有對應的command 字串, 執行時藉由指定command字串便能執行, 該command字串所對應的動作.
6. State Pattern
每個狀態各自成為一個物件,負責自己該狀態的服務,並提供切換狀態的方法。
7. Mediator Pattern
所有共事的物件彼此間互動狀態若較複雜時, 讓這些物件繼承同一個 abstract class, 而這個被大家繼承的 abstract class 具有 Mediator的reference. 每當任一個共事的物件狀態發生改變, 便告知 Mediator, 由 Mediator 來控制其他共事的物件, 執行對應的動作.