標籤:設計模式 預設適配器模式
原創:http://leihuang.org/2014/12/06/default-adapter/
Structural 模式 如何設計物件之間的靜態結構,如何完成物件之間的繼承、實 現與依賴關係,這關乎著系統設計出來是否健壯(robust):像是易懂、易維護、易修改、耦合度低等等議題。Structural 模式正如其名,其分類下的模式給出了在不同場合下所適用的各種物件關係結構。
- Default Adapter 模式
- Adapter 模式
- Bridge 模式
- Composite 模式
- Decorator 模式
- Facade 模式
- Flyweight 模式
- Proxy 模式
很多情況下,一個具體類去實現一個介面,但是又不是需要實現介面中所有的方法,只需要部分方法,但是實現介面的時候,強制實現了所有的方法,這樣就導致了這個具體類含有許多空方法.這是一種浪費,也會導致混亂,所以就產生了預設適配器模式.
下面我們定義一個人介面(IPerson)
public interface IPerson{ String getName() ; void goToSchool() ; void work() ; void eat() ;}
當需要一個學生的具體類時,我們會發現,如果繼承IPerson介面的話,那麼work()這個方法就必須空著,所以這裡我們先定義一個抽象的預設適配器類實現IPerson介面.
public abstract class PersonAdapter{ public String getName(){} ; public void goToSchool(){} ; public void work(){} ; public void eat() ;}
接下來我們再實現我們具體的學生類(Student)
public class Student extends PersonAdapter{ private String name = null ; public Student(String name){ this.name = name ; } public String getName(){ return name ; } public void goToSchool(){ System.out.println("go to school !") ; } public void eat(){ System.out.println("eating") ; }}
下面是類結構圖
2014-12-06 20:14:29
Brave,Happy,Thanksgiving !
設計模式:預設適配器模式