Arc*_*gon 5 static-methods coding-style objective-c
就良好的Objective-C编码实践而言,如果我创建一个没有状态的函数,将它编写为某个类的静态方法还是作为C函数更好?
例如,我有一个特殊的文件路径检索方法,在进入主NSBundle之前检查Caches目录.我目前在一个空的Utils类下将它作为静态方法.这应该是C函数吗?
我选择使用静态方法(目前)的原因是:a)它与Objective-C语法一致,b)该类有助于对方法进行分类.但是,我觉得我有点作弊,因为我可以轻松地用这些无状态静态方法填充我的Util类,最终得到一个丑陋的"shell类",其唯一的目的就是持有它们.
你用什么约定?通过一些客观指标,一个比另一个"更好"吗?谢谢!
如果你能想到一个现有的类,它可能是一个很好的方法,你可以通过创建一个 Objective-C 类别来将你的方法注入到其中。这保留了使用静态方法同时又不会用额外的类污染类空间的两个原因。
例如:
@interface NSString (MyStringCategories)
- (NSString*) myCoolMethod;
@end
// [StringCategories.m]
#import "StringCategories.h"
@implementation NSString (MyStringCategories)
- (NSString*) myCoolMethod {
// do cool stuff here
return whateverYouLike;
}
@end
Run Code Online (Sandbox Code Playgroud)
现在您可以发送myCoolMethod到任何字符串。凉爽的!
在您的特定情况下,听起来 NSBundle 上的方法可能是合适的架构。不要忘记,它可以是一个类方法,因此您不需要实例化任何内容来调用您的方法。
| 归档时间: |
|
| 查看次数: |
791 次 |
| 最近记录: |