首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

Objective-C 設計模式:外觀模式 簡化複雜框架介面

     編輯:關於C

模式動機

框架類別眾多、相依複雜時,提供一個統一高層介面,讓客戶端以最簡單方式完成常見任務,同時保留直接使用底層類別的彈性。就像買電腦:可選品牌機(外觀),也可自行採購零件組裝(底層 API)。

角色結構

  • 子系統類別:Display、MainBoard、CPU 等,各自封裝具體選擇邏輯。
  • 外觀類別:MacBookPro,組合子系統呼叫,提供 chooseDevice 一鍵配置。
  • 客戶端:僅依賴外觀類別,無需知曉子系統細節。

代碼示範

子系統

@interface Display : NSObject
- (void)chooseDisplay:(NSString *)type;
@end
@implementation Display
- (void)chooseDisplay:(NSString *)type { NSLog(@"選擇顯示器:%@", type); }
@end
// MainBoard、CPU 同理

外觀類別

@interface MacBookPro : NSObject
- (void)chooseDevice;
@end
@implementation MacBookPro
- (void)chooseDevice {
    [[Display new] chooseDisplay:@"三星"];
    [[MainBoard new] chooseMainBoard:@"華碩"];
    [[CPU new] chooseCPU:@"i5處理器"];
}
@end

客戶端使用

@implementation Client
- (void)assembleComputer {
    [[MacBookPro new] chooseDevice];  // 一行搞定
}
@end

進階:多種預設配置

可擴充多個外觀類別(MacBookAir、GamingPC)或在外觀類別提供參數化配置方法,滿足不同使用者層級需求。

優缺點總結

優點缺點
降低客戶端耦合,簡化常用流程若過度封裝可能限制進階用法
子系統內部變更不影響客戶端違反「最少知識原則」風險(外觀知道太多子系統)
分層架構清晰,利於維護
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved