美文网首页
iOS 中的类簇

iOS 中的类簇

作者: lixiaoshuai | 来源:发表于2017-07-22 19:11 被阅读95次

    类簇的定义

    类簇(Class Cluster)是定义相同的接口并提供相同功能的一组类的集合,仅公开接口的抽象类也可以称之为类簇的公共类,每个具体类的接口有公共类的接口抽象化,并隐藏在簇的内部。
    是基于抽象工厂模式在OC中应用。

    类簇的目的

    更加方便的初始化出一个类的实例对象。

    iOS中应用了类簇设计的类

    NSNumber,NSArray,NSDictionary,NSSet,NSTextStorage,(其他的暂时不知道)

    对NSNumber实现的猜测

    NSNumber是解决基本数据类型,结构体转化对象的一种解决方案。对于这个转化而言,如果每一个数据类型都对应一个转化后的类对象,会造成转化的类过多,使用不便的问题。对于NSNumber的使用,关注的是他的使用结果,而非过程。因此,可将每一个基本数据类型,结构体转化后的类都放在一个文件中,使其均继承一个公共的父类。由父类暴露出功能接口,在对应的实现中,通过每一个具体的子类进行实现。NSArray 看类簇的实现
    其中对NSArray和NSMutableArray的猜测如下,两者调用alloc方法后,均返回一个__NSPlaceholderArray的对象。其在调用init方法,由他判断是NSArray或是NSMutableArray,生成对应的对象。(判断方式通过alloc方法中的静态变量的地址)PS:所有的初始化的内容为空的不可变数组,其均指向NSArray的alloc方法中的静态变量。

    自定义类簇的公共类的子类,需要重写该公共类的许多方法

    由于该公共类中的多数方法的实现均是通过其私有子类完成。因此,需要自定义的子类重写该类的许多方法。

    相关文章

      网友评论

          本文标题:iOS 中的类簇

          本文链接:https://www.haomeiwen.com/subject/lniukxtx.html