美文网首页
OC——52个有效方法:9.类族模式

OC——52个有效方法:9.类族模式

作者: 梦蕊dream | 来源:发表于2018-01-16 12:06 被阅读35次

"类族"(class cluster),较为有用的模式(pattern),可以隐藏"抽象基类"(abstract base class)背后的实现细节.用户无需自己创建子类实例,只需调用基类方法来创建即可.

创建类族

示例代码:大致逻辑

父类雇员LETEmployee
#import <Foundation/Foundation.h>

typedef NS_ENUM(NSUInteger,LETEmployeeType){
    LETEmployeeTypeDeveloper,
    LETEmployeeTypeDesigner,
    LETEmployeeTypeManager,
};

@interface LETEmployee : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) float salary;
+ (LETEmployee *)emploryWithType:(LETEmployeeType)type;
- (void)doDaysWork;

@end
------------------------------------------------------------------------
#import "LETEmployee.h"

@implementation LETEmployee
+ (LETEmployee *)emploryWithType:(LETEmployeeType)type{
    switch (type) {
        case LETEmployeeTypeManager:
            return [LETEmployeeTypeManager new];
            break;
        case LETEmployeeTypeDesigner:
            return [LETEmployeeTypeDesigner new];
            break;
        case LETEmployeeTypeDeveloper:
            return [LETEmployeeTypeDeveloper new];
            break;
        default:
            break;
    }
}
- (void)doDaysWork{
    
}
@end
子类开发人员:LETDeveloper
#import "LETEmployee.h"

@interface LETDeveloper : LETEmployee

@end
------------------------------------------------------------
#import "LETDeveloper.h"

@implementation LETDeveloper
- (void)doDaysWork{
    [self wirteCode];
}
@end

使用"工厂模式"创建类族方法之一.如果某对象所属类位于某个类族中,在查询类型信息时,需要注意.上述例子中:[employee isMemberOfClass:[LETEmployee class]]返回的值是NO.因为employee不是LETEmployee类的实例,而是LETDeveloper的实例.

相关文章

  • OC——52个有效方法:9.类族模式

    "类族"(class cluster),较为有用的模式(pattern),可以隐藏"抽象基类"(abstract ...

  • Effective Objective-C 2.0 第二章 九、

    类族模式也可叫做类簇模式。 在工厂模式中,有简单工厂模式,工厂方法模式,抽象工厂模式。而类族模式与简单工厂模式类似...

  • iOS --以 '类族模式' 隐藏实现细节(8)

    以 '类族模式' 隐藏实现细节 '类族' 是一种很有用的模式 (也叫做 '类别方法'), 可以隐藏 '抽象基类 '...

  • 以“类族模式”隐藏实现细节

    “类族”是一种很有用的模式,可以隐藏“抽象基类”背后的实现细节,OC系统框架中普遍使用此模式。比如UIKit中就有...

  • 3.8单例设计模式

    /*设计模式:解决某一;类问题最行之有效的方法类问题最行之有效的方法java中23种设计模式单例设计模式:解决一个...

  • OC:类族

    "类族"是一种很有用的模式(pattern),可以隐藏“抽象基类”背后的实现细节。 比如UIKit框架中的UIBu...

  • From Objective-C to Ruby(4)-类和模块

    类 定义类 OC: ruby: 初始化方法 OC: ruby: 实例变量和属性 OC: ruby: 类方法和对象方...

  • 《Effective Objective-C 2.0 》 阅读笔

    第9条:以“类族模式”隐藏实现细节 1. 类族模式 “类族”(class cluster)是一种模式(patter...

  • OC&iOS

    OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...

  • Objective-C 类与对象

    类方法 OC 中类的方法只有类的静态方法和类的实例方法 OC 中的方法只要声明在 @interface 里,就可以...

网友评论

      本文标题:OC——52个有效方法:9.类族模式

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