×

对象间交互推导过程及模式选择

消耗积分:1 | 格式:rar | 大小:0.3 MB | 2017-09-25

分享资料个

  对象间交互模式2017-06-22 11:32程序设计/设计推荐人:feizhu422

  前言

  直白的对象间交互

  轻度抽象的对象间交互

  使用Target-Action淡化接口概念的对象间交互

  响应式的对象间交互

  基于闭包的对象间交互

  推导过程

  总结

  前言

  闭包在什么场景下才是最优选择?理由?补充说明一下:很多场景都适用闭包,但不是所有场景下闭包都是最优选择。

  这篇文章主要就是回答这个问题的。

  但是在直接切入闭包之前,我们需要有一个推导的过程,在推导过程之前,我们还需要梳理一下现有的交互模式。所以,关于这篇文章的内容,更确切地说应该是讨论了对象间各种交互方式。

  这个主题其实很早之前业界也讨论过,objc.io很早就有《Communication Patterns》这篇文章详细讲过这个问题。这篇文章在很多地方说得都是对的,但这篇文章在block的讨论上不够全面。国内也有很多人关于对象间交互的问题写过文章,但这些文章相比《Communication Patterns》来说,就已经错得十分离谱了。

  本文是从另一个角度讨论了同样的问题,文末给的决策图可以作为《Communication Patterns》的补充去做参考。

  直白的对象间交互

  解决对象间交互问题的最直白朴素的做法就是直接传值,直接调用。

  适用这种做法的前提是你非常确认A对象的信息来源只可能是B对象,而且在未来这个前提也是不会产生任何改变。这个前提在某些场景下是成立的,例如你要取timestamp,那么只可能从NSDate中取。你要操作字符串,也只可能使用NSString。我这里说的是通常的环境,当然,针对NSDate或NSString这类对象做二次封装导致不直接依赖NSDate或NSString的场景也是有的,其本质依旧不变。

  这种做法的好处在于可以限制实现手段的多样性,在维护代码的时候工程师能够更加容易地去聚焦问题所在。

  存在限制不一定是坏的,灵活度高也不一定是好的。当一个工程中为了解决同一个问题而存在多种方案的

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !