浓缩代码有什么好处吗?

时间:2013-01-02 02:44:13

标签: objective-c cocoa coding-style

假设我有一个长达数行的陈述:

NSString *urlString = @"http://www.example.com";
NSURL *url = [NSURL urlWithString:urlString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

将它压缩到一行是否有任何好处?

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL urlWithString:@"http://www.example.com"]];

1 个答案:

答案 0 :(得分:4)

单行版本的好处是您不必创建临时中间变量。如果您对这些中间变量没有其他用途,这将特别有用。在某些情况下,它看起来更整洁,但在其他情况下,它看起来很笨重。没有严格的规则要遵循,这完全取决于你自己的美学。就个人而言,我会为您的场景选择单行版本,但可能还有其他人不同意。

有一次,我知道我避免使用单行程序,因为初始化方法需要多个参数,因为它可能会变得混乱而难以遵循,特别是如果你深入几层。对于一个简单的例子:

id someObject = [MyClass myClassWithThing:[Thing thingWithX:5 andY:5] supportingThing:[SupportingThing supportingThingWithString:@"Tada!"] error:NULL];

有些人更喜欢使用Eastern Polish Christmas Tree notation,这看起来像是:

id someObject = [MyClass myClassWithThing:[Thing thingWithX:5 andY:5]
                          supportingThing:[SupportingThing supportingThingWithString:@"Tada!"]
                                    error:NULL];

同样,这里没有规则可循。虽然Objective-C有关于如何命名类和方法的约定,但我还没有遇到嵌套消息发送的约定。

首先,代码的可读性和可维护性。