美文网首页
9.以“类簇”实现隐藏细节

9.以“类簇”实现隐藏细节

作者: 写代码写到人生巅峰 | 来源:发表于2017-05-05 15:09 被阅读0次

工厂模式

1.抽象基类

typedef NS_ENUM(NSUInteger, EOCEmployeeType) {
    EOCEmployeeTypeDeveloper,
    EOCEmployeeTypeDesigner,
    EOCEmployeeTypeFinance,
};

@interface EOCEmployee : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) NSUInteger salary;

- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)employeeWithType:(EOCEmployeeType)type;

- (void)doADaysWork;

@end

@implementation EOCEmployee

+ (instancetype)employeeWithType:(EOCEmployeeType)type {
    switch (type) {
        case EOCEmployeeTypeDeveloper: {
            return [EOCEmployeeDeveloper new];
        } break;
            
        case EOCEmployeeTypeDesigner: {
            return [EOCEmployeeDesigner new];
        } break;
            
        case EOCEmployeeTypeFinance: {
            return [EOCEmployeeFinance new];
        } break;
    }
}

@end

2.每个实体子类实现

@interface EOCEmployeeDeveloper : EOCEmployee

@end

@implementation EOCEmployeeDeveloper

- (void)doADaysWork {
    [self writeCode];
}

- (void)writeCode {

}

@end

相关文章

网友评论

      本文标题:9.以“类簇”实现隐藏细节

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