題目描述:
請使用 Objective-C 中的 @protocol
協議機制,實現一個簡易的門禁控制系統。
系統包含兩個類:
AccessControlSystem
—— 門禁系統,用于執行開門操作;Admin
—— 實現權限判斷邏輯的管理員。
要求如下:
-
定義一個名為
AccessControlDelegate
的協議,包含一個方法- (BOOL)canAccess
; -
AccessControlSystem
類中持有一個AccessControlDelegate
類型的delegate
; -
當調用
openDoor
方法時,根據 delegate 返回的權限判斷是否允許開門;- 如果有權限,輸出:
Door opened successfully!
- 如果無權限,輸出:
Access denied! You don't have permission to open the door.
- 如果有權限,輸出:
Admin 類定義如下:
@interface Admin : NSObject <AccessControlDelegate>
- (BOOL)canAccess;
@end
面試目標:
考察候選人對 Objective-C 協議(@protocol
)、委托模式(Delegate Pattern)以及基本類設計和方法調用的掌握程度。