gpt4 book ai didi

objective-c - Cocoa Mac 应用程序的一个大类与几个小类的比较

转载 作者:行者123 更新时间:2023-12-03 16:58:37 26 4
gpt4 key购买 nike

我使用 ARC 创建了一个应用程序,用于解析在线 XML 文件中的数据。我能够使用一个类和一次 API 调用来获得我需要的一切。 API 提供 XML 数据。由于 xml 文件很大,我有很多与此类关联的变量、IBOutlet 和 IBActions。

但是有两种方法可以实现:

1) 创建一个类来解析 XML 数据并为您的应用程序实现该数据,即创建一个可以完成所有操作的类(正如我已经完成的那样)

2) 创建一个解析 XML 数据的类,并创建其他类来处理从 XML 解析器类获得的数据,即一个类进行解析,另一个类实现该数据

请注意,某些提供 XML 数据的 API 会跟踪其服务的每分钟或每天的调用次数。因此,您不希望多个类调用该 API,最好向 API 发出一个请求,该请求接收您需要的所有数据。

那么,是使用几个较小的类来处理 xml 数据更好,还是只使用一个大类来完成所有操作?

最佳答案

如有疑问,小类授课更好。

2) create a class which parses the XML data and create other classes which handle the data obtained from the XML parser class, i.e. one class does the parsing and another class implements that data

这样做的一个关键优点是后一个类模型的工作与前一个类所做的解析工作是分开的。这变得很重要:

  • 正如 Peter Willsey 所说,当您的 XML 解析器发生变化时。例如,如果您从基于流的解析切换到基于文档的解析,反之亦然,或者从一个解析库切换到另一个解析库。
  • 当您的 XML 输入发生变化时。如果你想添加对新格式或新版本格式的支持,或者取消对过时格式的支持,你可以简单地添加/删除解析类;模型类可以保持不变(或者仅进行小而明显的改进以支持新/改进格式的新功能)。
  • 当您添加对非 XML 输入的支持时。例如,JSON、plist、键控存档或自定义专有格式。同样,您可以简单地添加/删除解析类;模型类不需要改变太多(如果有的话)。

即使这些事情都没有发生,它们还是分开比混在一起更好。解析输入和建模用户数据是两项不同的工作;将它们混在一起使得它们很难或不可能单独推理。将它们分开,您可以更改其中一个,而无需绕过另一个。

关于objective-c - Cocoa Mac 应用程序的一个大类与几个小类的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10321739/

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