详解iOS应用开发中使用设计模式中的抽象工厂模式

2020-01-14 22:19:37丽君

}
@end


AccessFactory类接口
复制代码
#import "IFactories.h"

 

@interface AccessFactory :IFactories
@end


AccessFactory类实现
复制代码
#import "AccessFactory.h"
#import "AccessUser.h"
#import "AccessDepartment.h"

 

@implementation AccessFactory
-(IUser*)CreateUser{
    return [[AccessUser alloc]init];
}
-(IDepartment*)CreateDepartment{
    return [[AccessDepartment alloc]init];
}
@end


SqlServerFactory类接口
复制代码
#import "IFactories.h"

 

@interface SqlServerFactory :IFactories
@end


SqlServerFactory类实现
复制代码
#import "SqlServerFactory.h"
#import "SqlServerUser.h"
#import "SqlserverDepartment.h"

 

@implementation SqlServerFactory
-(IUser*)CreateUser{
    return [[SqlServerUser alloc]init];
}
-(IDepartment*)CreateDepartment{
    return [[SqlserverDepartment alloc]init];
}
@end


Main方法调用
复制代码
#import <Foundation/Foundation.h>
#import "User.h"
#import "Department.h"
#import "IFactories.h"
#import "AccessFactory.h"
#import "IUser.h"
#import "IDepartment.h"

 

int main (int argc,const char * argv[])
{
    @autoreleasepool{
        User *user = [[User alloc]init];
        Department *dept = [[Department alloc]init];
        IFactories *factories = [[AccessFactory alloc]init];
        IUser *iu = [factories CreateUser];
        [iu Insert:user];
        [iu GetUser:1];

        IDepartment *myId = [factories CreateDepartment];
        [myId Insert:dept];