我们都知道Objective-C方法头比标准Java方法头包含更多信息...这在使用UML进行建模时会带来问题...一些方法名无法控制地变得非常长...在UML类图中清晰地建模这些方法的最佳方式是什么?你可以压缩方法名,或者为它们编写一些Java风格的头吗?我正在为一个软件系统撰写报告,我被卡住了...
我认为在某些情况下,Objective-C头文件携带的总体信息较少,但它们可以更清晰地显示接口。
例如 - 使用现代Objective-C运行时(适用于Mac OS和iOS),您不需要在头文件中声明私有iVars或私有方法 - 它们可以移至实现文件中的类别。甚至可以在实现中将属性重新声明为readwrite
,而在头文件中声明为readonly
。
这意味着类中的内容比头文件显示的要多得多,但公共接口与私有实现分开定义 - 这是UML图表中的好事。
至于长方法名 - 那是Objective-C的惯例。你可以喜欢它或讨厌它(我个人很喜欢)。但在编写方法时,它们并不显示其参数。例如:假设您有一个声明为:
- (NSString *)resultStringWithOptions:(NSDictionary *)options withCharacterSet(NSCharacterSet *)charSet error:(NSError **)error:
这个方法的实际名称是:
resultStringWithOptions:withCharacterSet:error: