Jea*_*ean 2 objective-c nsstring
我只是在考虑一个编程设计问题:
比如,我将5个字符串传递给从一个类到另一个类的方法.它们的详细信息如下:主机名主机域用户子域用户名密码
哪个更好?1.将它们作为NSString对象的数组传递或2.重新定义被调用的方法以接受5个不同的NSString参数?
这是一种更有效的方法吗?
你错过了第三种方法 - 传递一个包含五个字段的自定义对象:
@interface HostDef // Pick a good name that fits well the purpose of your method.
@property (nonatomic, readwrite) NSString* hostName;
@property (nonatomic, readwrite) NSString* hostDomain;
@property (nonatomic, readwrite) NSString* userSubdomain;
...
@end
Run Code Online (Sandbox Code Playgroud)
这是最具描述性和可扩展性的方法:如果您需要扩展传入的项目列表,您可以更改HostDef,而方法的签名保持不变.
如果在可预见的将来参数的数量可能保持为5,那么具有五个单独参数的方法同样好.具体来说,如果参数的数量对应于世界上的基本内容或者不会改变的算法,那么使用单个参数的方法是一个不错的选择.例如,如果您的方法将左子树和二叉树的右子树作为其输入,则具有两个参数是合适的,因为二叉树不能获得更多或更少的参数而不会成为二叉树以外的其他参数.
传递一个简单的未命名对象数组是最不可读的选择,这也是最难维护的选择.除非所有对象与程序具有相同的"含义",否则它们不应放在同一个数组中.例如,将主机域和用户子域放入同一阵列是一种误导程序读者的快速方法,使维护工作变得非常复杂.
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |