Objective-c protocol 练习

题目描述:

请使用 Objective-C 中的 @protocol 协议机制,实现一个简易的门禁控制系统。

系统包含两个类:

  1. AccessControlSystem ------ 门禁系统,用于执行开门操作;
  2. 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)以及基本类设计和方法调用的掌握程度。

相关推荐
CoderYanger25 分钟前
C.滑动窗口-求子数组个数-越长越合法——2799. 统计完全子数组的数目
java·c语言·开发语言·数据结构·算法·leetcode·职场和发展
C++业余爱好者29 分钟前
Java 提供了8种基本数据类型及封装类型介绍
java·开发语言·python
林杜雨都31 分钟前
Action和Func
开发语言·c#
皮卡龙33 分钟前
Java常用的JSON
java·开发语言·spring boot·json
火山灿火山1 小时前
Qt常用控件(三)
开发语言·qt
利刃大大1 小时前
【JavaSE】十三、枚举类Enum && Lambda表达式 && 列表排序常见写法
java·开发语言·枚举·lambda·排序
float_六七1 小时前
Java反射:万能遥控器拆解编程
java·开发语言
han_hanker2 小时前
java 异常类——详解
java·开发语言
源码获取_wx:Fegn08952 小时前
基于springboot + vue健身房管理系统
java·开发语言·前端·vue.js·spring boot·后端·spring
LinHenrY12272 小时前
初识C语言(自定义结构:结构体)
c语言·开发语言