面試題-Java設計模式舉例
1、適配器模式
涉及三個角色:Target目標接口、Adaptee源角色、Adapter適配器;Adapter將源接口適配到目標接口,繼承源接口,實現目標接口。
Java I/O操作中很多這樣的例子:
InputStreamReader 將 InputStream 適配到 Reader;需要繼承InputStream實現Reader。
OutputStreamWriter 將 OutputStream 適配到 Writer;
StringReader 將 String 類適配到 Reader;
2、裝飾器模式
涉及到三個角色:Component抽象組件角色、ConcreteComponent實現抽象組件的所有功能、Decorator裝飾器角色,它持有一個Component對象實例的引用,定義一個與抽象組件一致的接口、ConcreteDecorator具體的裝飾器實現者。
Java I/O中的裝飾器模式:FilterInputStream類;
注:適配器與裝飾器模式都屬於包裝模式,他們看似都是起到包裝一個類或者對象的引用,但是使用他們的目的不一樣;適配器模式的意義是通過改變接口來達到重復使用的目的,裝飾器模式是保持原有接口,增強原有對象的功能。