[英]Passing five strings to a method in objective-c xcode
我只是在思考一个编程设计问题:
假设,我正在将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
这是最具描述性和可扩展性的方法:如果需要扩展传入的项目列表,请更改HostDef
,而方法的签名保持不变。
如果在可预见的将来参数数量可能仍为五个,则具有五个单独参数的方法同样适用。 具体来说,如果参数的数量与世界上基本的东西或算法中不会改变的东西相对应,则具有单个参数的方法是一个不错的选择。 例如,如果您的方法将二叉树的左子树和右子树作为输入,则具有两个参数是合适的,因为在不成为二叉树的情况下,二叉树不能获得更多或更少的参数。
传递未命名对象的简单数组是最不易读的选择,也是最难维护的选择。 除非所有对象对程序都具有相同的“含义”,否则不应将它们放入同一数组中。 例如,将主机域和用户子域放在同一阵列中是一种误导程序读者的快速方法,从而使维护工作大大复杂化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.