A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yolande 中级黑马   /  2015-12-26 01:08  /  615 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

可读性。
比如你设计一个邀请朋友参加聚会的方法,除了指定姓名外,还可选择是否提前预约:
public void inviteFriend(String name, boolean appointment);
然后别人调用起来是这样的:
somebody.inviteFriend("LiLei", true);
问题就来了,写程序时即便不会搞错,等到阅读这段代码的时候,这个布尔参数的理解就非常有歧义,除了「是否预约」之外,还可能理解为「是否贵宾待遇」,「是否接送」,「是否发请帖」……。如果不看文档中参数的描述,根本就无法理解正确。
所以为什么有人提倡不建议使用布尔参数,就是因为可读性麻烦,一种解决方案是用枚举:
public void inviteFriend(String name, Appointment appointment);
但引入了新的类型,似乎更麻烦了……来看看 Objective C 是怎样的:
-(void) inviteFriend:(NSString *)name appointment:(BOOL)appoint;
看起来挺麻烦的,但调用起来呢?
[someBody inviteFriend:@"LiLei" appointment:YES];
看起来是不是既方便,又一目了然?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马