我有一个可以绘制图表的视图...将有不止一种图表类型...如何将它们包装在工厂类中?因此,我有一个MyChart
类(UIView
子类)...如果用户可以执行以下操作:
MyChart *chart = [[Mychart alloc] initWithFrame:frame andType:1];
图表实际上将变成
MyLineChart
对象...或myChart可以创建的其他对象?我是否只是在myChart类的init中创建thouse视图,然后返回它们而不是返回self?
最佳答案
像这样的须藤代码
typedef enum {
MyChartTypeLine,
MyChartTypePoint,
...
} MyChartType;
MyLineChart *chart = [MyChart chartWithType:MyChartTypeLine];
在MyChart.m中添加一个类方法:
+ (id)chartWithType:(MyChartType)type
{
switch (type) {
case MyChartTypeLine:
return [[MyLineChart alloc] init];
case...
}
return nil;
}