组件接口(API)设计指南[4]-通知(Notifications)「建议收藏」

组件接口(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: 測试的地狱

    最后,全部事情大家都已经知道了。

软件project专业化第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

组件接口(API)设计指南[4]-通知(Notifications)「建议收藏」           组件接口(API)设计指南[4]-通知(Notifications)「建议收藏」

             便签夹                                        豆瓣读书


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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116183.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 线性反馈移位寄存器的实现原理_线性移位寄存器序列

    线性反馈移位寄存器的实现原理_线性移位寄存器序列1、写出n阶线性反馈移位寄存器的实现过程2、假设一个GF(2)上的5阶线性反馈移位寄存器的反馈函数为f(x1,x2,x3,x4,x5)=x1+x5初始状态为10011,试写出该线性反馈移位寄存器的输出序列程序:#include#includeusingnamespacestd;voidGF(inta,intn){intb;

    2025年5月26日
    0
  • 怎样在桌面建立透明框放置文件夹_雨滴桌面怎么用

    怎样在桌面建立透明框放置文件夹_雨滴桌面怎么用一、效果1、YcDock-left2.0动图是1.0版的,2.0是第二张图,懒得截动图了下载地址:2、YcDock-bottom2.0下载地址:喜欢的小伙伴点赞收藏下载吧

    2022年9月3日
    3
  • softmax损失函数理解「建议收藏」

    softmax损失函数理解「建议收藏」softmaxsoftmax的定义假设有一个数组V,ViVi表示V中的第i个元素,那么这个元素的softmax值为:SoftmaxLayer和SoftmaxLossLayersoftmaxLayersoftmax实际上就是logistic的扩展,后者只能二分类,前者则能多分类,实际上都是返回每一类的概率值。在caffe里面softmax的实现分为以下几步(加入输入到softmax里面…

    2022年6月26日
    34
  • jquery Ajax请求中显示Loading…

    jquery Ajax请求中显示Loading…

    2021年9月7日
    113
  • GROUP BY和HAVING用法介绍

    GROUP BY和HAVING用法介绍一、groupby和having1、满足“SELECT子句中的列名必须为分组列或列函数”,因为SELECT有groupby中包含的列2、having必须和groupby一起用,且在groupby后面3、groupby、having、orderby的使用顺序:groupby、having、orderbySELECT*|字段列表[as别名]FROM表名[WHERE子句][GROUPBY子句][HAVING子句][ORDERBY子句][LIMIT…

    2022年6月18日
    19
  • Security身份认证之UserDetailsService[通俗易懂]

    Security身份认证之UserDetailsService[通俗易懂]之前我们采用了配置文件的方式从数据库中读取用户进行登录。虽然该方式的灵活性相较于静态账号密码的方式灵活了许多,但是将数据库的结构暴露在明显的位置上,绝对不是一个明智的做法。本文通过Java代码实现UserDetailsService接口来实现身份认证。1.1UserDetailsService在身份认证中的作用SpringSecurity中进行身份验证的是AuthenticationMan…

    2022年4月19日
    374

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号