表达C++&引用;“受保护的虚拟”;Objective-C中的成语? 在C++中,当基类实现其所有的算法时,都会有一个模板方法习惯用法,但是对于子类来说,需要用一些不受层次结构客户端访问的受保护的虚拟方法来实现一些细微的差别(通常必须处理数据格式等)。p>

表达C++&引用;“受保护的虚拟”;Objective-C中的成语? 在C++中,当基类实现其所有的算法时,都会有一个模板方法习惯用法,但是对于子类来说,需要用一些不受层次结构客户端访问的受保护的虚拟方法来实现一些细微的差别(通常必须处理数据格式等)。p>,c++,objective-c,design-patterns,C++,Objective C,Design Patterns,用Objective-C表达同一习语最自然的方式是什么 谢谢。我将创建一个带有类别的单独头文件。您可以将该类别命名为受保护的: @interface MyClass(Protected) // Place your "protected" methods here. @end 普通类用户不会导入此文件,只导入主类文件。但是实现和子类也会导入包含受保护的类别的头文件 如果这些方法是可选的,则可以使用协议: @protocol MyClassProtected // Required method

用Objective-C表达同一习语最自然的方式是什么


谢谢。

我将创建一个带有类别的单独头文件。您可以将该类别命名为受保护的:

@interface MyClass(Protected)
// Place your "protected" methods here.
@end
普通类用户不会导入此文件,只导入主类文件。但是实现和子类也会导入包含
受保护的
类别的头文件

如果这些方法是可选的,则可以使用协议:

@protocol MyClassProtected
// Required methods here.
@optional
// Optional methods here.
@end
我觉得这不是一个很好的解决方案,但它的工作类别

然后,第三种方法是简单地避免使用约定:相应地命名受保护的方法:

@interface MyClass {
}

// This method is not to be called by users, but subclasses may
// overwrite to do something else.
- (void) protected_someMethodDoingFoo;
@end

我将创建一个单独的带有类别的头文件。您可以将该类别命名为受保护的:

@interface MyClass(Protected)
// Place your "protected" methods here.
@end
普通类用户不会导入此文件,只导入主类文件。但是实现和子类也会导入包含
受保护的
类别的头文件

如果这些方法是可选的,则可以使用协议:

@protocol MyClassProtected
// Required methods here.
@optional
// Optional methods here.
@end
我觉得这不是一个很好的解决方案,但它的工作类别

然后,第三种方法是简单地避免使用约定:相应地命名受保护的方法:

@interface MyClass {
}

// This method is not to be called by users, but subclasses may
// overwrite to do something else.
- (void) protected_someMethodDoingFoo;
@end

在我看来,您似乎在要求抽象类的Java概念。有帮助吗?

在我听来,您好像在询问抽象类的Java概念。有帮助吗