工厂模式和策略模式的区别

来源:互联网 发布:阿里云干嘛的 编辑:程序博客网 时间:2024/05/29 12:51

    工厂设计模式,用于创建复杂对象,管理多个不同功能接口 ,策略模式只是将同一功能的不同实现抽离出来,不需要管理对象


@protocol xxx <NSObject>

-(id<Map>)getMap;mapview功能

-(id<Location>)getLocation;定位功能

@end

//实现工厂协议获取对应的对象

-(id<Map>)getMap{

    return [[BaiduMapalloc]init];

}

-(id<Location>)getLocation{

    return [[BaiduLocationalloc]init];

}

//地图协议

@protocol Map <NSObject>

-(UIView *)getView:(CGRect)frame;


@end

//地图协议实现

@implementation BaiduMap

-(UIView *)getView:(CGRect)frame{

    UILabel * la = [[UILabelalloc]init];

    la.backgroundColor = [UIColorredColor];

    la.frame = frame;

    return la;

}

//定位协议

@protocol Location <NSObject>

-(void)getLocation;

@end

//地图定位实现

@implementation BaiduLocation

-(void)getLocation{

    NSLog(@"baiduLocation.......");

}

@end



//策略模式

//策略协议

@protocol Calculation <NSObject>

-(CGFloat)getMoneyWithMonth:(CGFloat)month money:(CGFloat)money;

@end


//接口实现

-(CGFloat)getMoneyWithMonth:(CGFloat)month money:(CGFloat)money{

    return month*200.0+money;

}