Objective-c protocol 练习
题目描述:
请使用 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)以及基本类设计和方法调用的掌握程度。