1

我有一个可以绘制图表的视图......将会有不止一种图表类型......我如何将它们包装在工厂类中?所以我有一个MyChart类(UIView子类)......如果用户可以做类似的事情:

MyChart *chart = [[Mychart alloc] initWithFrame:frame andType:1];

并且图表实际上将成为一个MyLineChart对象......或 myChart 可以创建的其他对象?我是否只是在 myChart 类的 init 中创建 thouse 视图 .. 并返回它们而不是返回 self?

4

1 回答 1

1

像这样的伪代码

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;
}
于 2012-11-18T13:41:12.830 回答