UIView工厂创建过程

时间:2012-11-18 13:10:37

标签: ios uiview delegates factory

我有一个将绘制图表的视图......将有多个图表类型...如何将它们包装在工厂类中?所以我有一个MyChart类(UIView子类)...如果用户可以这样做:

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

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

1 个答案:

答案 0 :(得分:1)

像这样的Sudo代码

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;
}