zoukankan      html  css  js  c++  java
  • Objective-C 类簇深入理解

    类簇(class cluster),是一种基于抽象工厂的设计模式,广泛运用于系统的Foundation框架。顾名思义,即一坨类,这里指的是继承自同一父类的一组私有子类。这种实现既可以简化公共接口,又保证了功能的丰富性。

    1、不使用类簇:概念简单,但是接口复杂

    为了阐述类簇实现以及它的好处,思考一个问题:如何构建一个类体系来存储不同类型(char, int, float, double等等)的number?

    这些不同类型的number有着很多相同的特性(例如转成另一种类型的number,表示成字符串等等),又各自有着不同的存储。鉴于此,可以使用如下实现:

    Number是抽象父类,实现子类的公共接口。但是它并没有定义实例变量来存储number,交由子类各自定义。

    随着number类型的改动和增多,类体系会演化成下面这样,子类特别多: 

    2、使用类簇:概念简单,接口也简单

    使用者只能看到父类Number,它的子类都变成私有的,由父类负责创建子类对象。 

    NSNumber *aChar = [NSNumber numberWithChar:’a’];
    NSNumber *anInt = [NSNumber numberWithInt:1];
    NSNumber *aFloat = [NSNumber numberWithFloat:1.0];
    NSNumber *aDouble = [NSNumber numberWithDouble:1.0];

      

    3、包含多个父类的类簇

    参考链接:

    https://developer.apple.com/documentation/foundation/nsmutablearray?language=objc

  • 相关阅读:
    javascript 数字格式化
    spring-cloud blogs
    rabbitmq python
    centos7下 安装mysql
    hue install
    d3 document
    elastichq 离线安装
    elasticsearch agg
    elastichq auto connect
    Go Hello World!
  • 原文地址:https://www.cnblogs.com/yangwenhuan/p/10026485.html
Copyright © 2011-2022 走看看