通过协议提供匿名对象--Effective笔记

协议定义了一系列方法,遵从此协议等对象应该实现它们(如果这些方法不是可选的,那么就必须实现)。于是,我们可以用协议把自己所写的API之中的实现细节隐藏起来,将返回的对象设计为遵从协议的 纯id 类型。这样的话,想要隐藏的类名就不会出现在API之中了。若是接口背后有多个不同的实现类,而你又不想指明具体使用哪个类,那么可以考虑用这个办法-------因为有时候这些类可能会变,有时候它们又无法容纳于标准的类继承类中,因而不能以某个公共基类来统一表示。

此概念经常称为“匿名对象”,与其他语言的匿名对象不同(指以内联形式所创建出来的无名类)。

1,协议可在某种程度上提供匿名类型。具体的对象类型可以淡化成遵从某协议的id类型,协议里规定了对象所应实现的方法。

2,使用匿名对象隐藏类型名称(或类名)。

3,如果具体类型不重要,重要的是对象能够响应(定义在协议里的)特定方法,那么可使用匿名对象来表示。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 协议定义了一些列方法,遵从此协议的对象应该实现它们(如果这些方法不是可选的,那么就必须实现)。于是,我们可以用协议...
    CoderCurtis阅读 415评论 0赞 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,841评论 25赞 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,408评论 18赞 399
  • 有人说丽江的时光是柔软的 她可以让生硬的世俗走向婉转轻盈 有人说丽江的故事是风情的 她可以让平淡的生活过得明媚鲜妍...
    梦双眸阅读 135评论 3赞 10
  • 快看那白云 白云酥酥软软 我把它摘下 放进你的手心里 请尝一尝 尝一尝这甜甜蜜蜜 如果还想吃一口 请跟我走 我要带...
    方成学长阅读 570评论 0赞 3

友情链接更多精彩内容