工厂模式
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