我正在与Quizlet API
进行交互,我一直在讨论构建代码的最佳方式。 Quizlet API具有多种功能,例如查看Sets
,Classes
和其他User
信息。我试图为此创建APIClients
,但我一直在努力寻找更好的解决方案来为客户建模或从这些潜在解决方案中选择最好的解决方案。继承vs扩展与内部类
解决方案1: 创建一个名为superclass
和QuizletManager
存储像clientID
,access codes
这是在所有的子类有用的基本信息,以及相关的信息。然后我可以创建个人subclasses
,如QuizletSet
,QuizletClass
等来处理获取集合,类和相关信息。当我真的需要获取数据时,我可能永远不会打电话给QuizletManager
;不过,我会创建QuizletSet
和相关类的新实例来完成联网。
解决方案2: 再次创建一个QuizletManager
超类与它的所有相关子类。然而,这次我将实例化所有与集合相关的子类以及QuizletManager
类中的所有子类,并在获取信息时调用子类中的方法QuizletManager
。 在这种情况下,我总是打电话QuizletManager
和QuizletManager
将使用子类实际获取信息。
解决方案3: 创建QuizletManager
类,并使其更具可读性使用附加功能来添加获取Sets
,Classes
等扩展将基本上包含添加获取Sets
和相关信息的功能函数的功能。
解决方案4: 在这个解决方案中,我将有一个类内的类。从本质上讲,我只希望有这样的事情:
class QuizletManager {
var clientID: String
// Other related properties important for sets, classes, etc.
class SetClient: APIClient {
// Fetch related info for sets.
}
}
啊,我喜欢那种方式。我会看看是否有任何其他建议/建议,然后我会接受你的回答:) – Harish