题目描述:
请使用 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 类定义如下:
objective-c
@interface Admin : NSObject <AccessControlDelegate>
- (BOOL)canAccess;
@end
面试目标:
考察候选人对 Objective-C 协议(@protocol)、委托模式(Delegate Pattern)以及基本类设计和方法调用的掌握程度。