组件接口(API)设计指南[4]-通知(Notifications)

*返回目录阅读其他章节: http://blog.csdn.net/cuibo1123/article/details/39894477


通知(Notifications)

    通知是委托协议的另一半。我的立场是,如果你使用委托协议(你因该在所有适合的地方使用),就添加一个同样功能的通知,以使它提供完整的委托/通知方案。

    在MGTileMenu中,你可以找到关于通知的接口文件:MGTileMenuController



规则23: 通知跟随委托方法

    在委托方法(适当的,不是数据源方法)和通知之间存在着天生的对应关系。你可以在你代码的任何地方使用他们,而达到完全相同的目的。

    如果你有一个关于事件发生的委托,你通常也应该提供一个同样目的的通知。做到即使把委托方法全部移除,使用者也依然可以通过通知来实现相应功能。

    委托方法的参数应该与通知的‘userInfo(通知附加值)’内容匹配,通知与您在委托中直接传递参数有一个明显的区别,它通常需要将信息装载到字典(NSDictionary)中。

    委托方法:

- (void)tileMenuWillDisplay:(MGTileMenuController *)tileMenu;
- (void)tileMenuDidDisplay:(MGTileMenuController *)tileMenu;

    相应的通知:

externNSString *MGTileMenuWillDisplayNotification;
externNSString *MGTileMenuDidDisplayNotification;

 


规则24: 不要吝啬‘userInfo(通知附加值)’ 

    给通知对象所需要的足够信息。请记住,通知接收器可能(几乎总是会)不持有委托或数据源组件的引用。

    问问自己什么是有用的,并提供相应信息。最起码,你必须确保提供给相应委托方法的参数都包含在了userInfo的对象中。

    委托方法:

- (void)tileMenu:(MGTileMenuController *)tileMenuwillSwitchToPage:(NSInteger)pageNumber;
- (void)tileMenu:(MGTileMenuController *)tileMenudidSwitchToPage:(NSInteger)pageNumber;

    相应的通知:

// 通知userInfo包含一个键"MGPageNumber"
#defineMGPageNumberKey @"MGPageNumber"
externNSString *MGTileMenuWillSwitchToPageNotification;
externNSString *MGTileMenuDidSwitchToPageNotification;



规则25: 测试的地狱

    最后,所有事情大家都已经知道了。软件工程专业化第101条:确保它确实可以工作。

    是否使用正式的TDD(测试驱动开发)取决于你,但测试本身是不可能做到全面的。每一个委托方法、每一个通知、每一个定制点所共同组成的千千万万种组合可能出现各种问题。

    出现缺陷,首先应该找到并修复他们。如果你在赶时间,可以裁切功能。你一定会对无bug上线的问题感到苦恼。


阅读下一章节: http://blog.csdn.net/cuibo1123/article/details/39894477

-------------------------

英文原名《API Design
       作者Matt Gemmell
       原名链接http://mattgemmell.com/api-design/

中文版由xoneday翻译
       欢迎访问译者博客:http://blog.xoneday.com
       新浪微博:@xoneday某天

如果这片译文给您带来了帮助,希望您能通过下载我的APP来支持我:
豆瓣读书:https://itunes.apple.com/cn/app/id695492935
便签夹:https://itunes.apple.com/cn/app/id580552733

           

             便签夹                                        豆瓣读书


*转载声明:请勿删减作者/译者信息与支持部分的内容,如不接受此条款请勿转载。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值