gpt4 book ai didi

cocoa - 抽象类或协议(protocol),Cocoa 推荐的做法是什么?

转载 作者:行者123 更新时间:2023-12-03 16:13:19 24 4
gpt4 key购买 nike

我不确定是否应该创建一个抽象类和一系列继承该抽象类的后代,或者定义一个协议(protocol)。 Cocoa 的最佳实践是什么?

最佳答案

这取决于。

抽象类 + 后代模式在 Cocoa 术语中被称为类簇。著名的例子有 NSStringNSArray。这种方法的主要优点是,您可以在基类上实现根据一组核心方法工作的方法,并且这些方法是继承的;例如,NSString 的子类只需为所有公共(public) NSString 实例实现 -length-characterAtIndex:工作方法(尽管效率不是很高)。

此模式的缺点是实现必须从基类继承,这在单继承语言中可能是一个严格的限制。

另一方面,协议(protocol)可以被任何类采用,但不能提供基本实现。这很像鸭子类型的静态检查版本;通过采用一个协议(protocol),您声称您可以江湖,并且通过要求一个协议(protocol),您可以将参数限制为具有江湖能力的类,而无需特定的基类。

如果您计划为您的抽象提供一组标准实现,您可能需要一个类集群。如果您想与一组实现您的抽象的开放对象进行通信,您可能需要一个协议(protocol)。

关于cocoa - 抽象类或协议(protocol),Cocoa 推荐的做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5530217/

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