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

工厂模式

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者...
    lichengjin阅读 907评论 0 8
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,333评论 25 708
  • 今天偶然发现简书,我觉得这里将作为我的内心独白之地
    春花的世界阅读 134评论 0 0
  • 丛林没有鞋子 山丘易怒摇晃草木 猎人看着长颈鹿 闭上眼想一个世纪 素 长颈鹿对着猎人鼻翼开枪 溃散的红色鼻涕养活了...
    陆丘禾阅读 191评论 0 0