我有一个可以绘制图表的视图...将有不止一种图表类型...如何将它们包装在工厂类中?因此,我有一个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;
}

10-07 21:24