gpt4 book ai didi

ios - Objective-C:如何在运行时决定实现

转载 作者:行者123 更新时间:2023-11-28 21:20:55 25 4
gpt4 key购买 nike

我正在开发需要解析 MSR 卡数据以查找特定用户 ID 类型号码的应用程序。对于不同的客户端,解析的细节会有所不同。理想情况下,我想编写实现相同接口(interface)的单独类,并选择在运行时使用哪一个。这也有一个 Web 组件,所以在 PHP 中我只是创建了一个接口(interface),然后是一些实现它的不同类,并根据配置值选择要实例化的类。在 Objective-C 中执行此操作的正确方法是什么?

我开始使用协议(protocol),但不知道如何设置调用代码应使用哪个实现。我需要导入所有的实现类然后写一个开关吗?似乎应该有更简单的方法。

谢谢

最佳答案

协议(protocol)方法是一个很好的方法。您在协议(protocol)中定义接口(interface),然后有不同的具体类来实现它。然后你有一个静态方法将决定使用哪个并返回它,但调用者不知 Prop 体类型,只知道它实现了你的协议(protocol),因为返回类型是协议(protocol)。

这样,决定使用哪个类的所有逻辑,以及不同具体类的所有知识都封装在这个单一的工厂方法中,调用代码只是说:

// MSRParser is the protocol defining the interface.
// MSRParserHelper is a class with a class method (+)
MSRParser parser = [MSRParserHelper parserForCard:aCard];
[parser doParserThings];

所以你看它不需要知道类是什么,只需要它符合协议(protocol)即可。

关于ios - Objective-C:如何在运行时决定实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39837286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com