组件接口(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 支付宝功能结构图_阿里双十一晚会

    支付宝功能结构图_阿里双十一晚会转自:https://blog.csdn.net/itfly8/article/details/111027014简介:汤波(甘盘),男,1989/02/21,硕士学历。高中开始编程,热爱技术,深信技术让世界更美好。对前沿技术一直保持饥饿感,热衷于创新和革新,让系统体制更为高效和人性化,也深知一个人强走的快,一个团体强才能走的远。在技术团队建设(团队招聘和组建、梯队梯度建设)、技术栈管理(包含技术选型、技术规范建设、软件体系规划)和项目研发管理(软件工程管理、开发效能和质量管理)方面有着较为丰富的实..

    2022年10月19日
    3
  • system在c语言中_c语言system返回值

    system在c语言中_c语言system返回值需包含头文件:C标准库-<stdlib.h>文章目录描述声明参数返回值实例1实例2:列出windows机上当前目录下所有的文件和目录描述C库函数intsystem(constchar*command)把command指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。声明下面是system()函数的声明。intsystem(constchar*command)参数command–包含被请求变量名称的C字符串。

    2025年11月25日
    3
  • 分布式事务中的Saga模式「建议收藏」

    分布式事务中的Saga模式「建议收藏」微服务架构(MSA)已经变得非常流行。但是,一个常见问题是如何跨多个微服务管理分布式事务。当微服务架构将单体系统分解为自封装服务时,意味着单体系统中的本地事务现在分布到将按顺序调用的多个服务中。说到分布式事务,通常熟悉的是两阶段提交,TCC等常见模式。初次之外还有基于Saga实现的分布式事务。什么是Saga?Saga事务模型又叫做长时间运行的事务(Long-running-transact…

    2022年9月18日
    2
  • 标签的使用——html+css学习笔记(一)[通俗易懂]

    标签的使用——html+css学习笔记(一)

    2022年2月22日
    42
  • word目录链接无法跳转_怎样跳转网页

    word目录链接无法跳转_怎样跳转网页概述目前使用的next版本是5.1.4,文章左侧的目录一直不能跳转也不能展开,按网上的办法一直没法解决,今天自己琢磨了一阵总算搞定了。由于发现遇到这个问题的人不少,特此总结一下。一般分为

    2022年8月16日
    16
  • 排序 遍历

    排序 遍历

    2021年9月10日
    58

发表回复

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

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