工厂设计模式,用于创建复杂对象,管理多个不同功能接口 ,策略模式只是将同一功能的不同实现抽离出来,不需要管理对象
@protocol xxx <NSObject>
-(id<Map>)getMap;mapview功能
-(id<Location>)getLocation;定位功能
@end
//实现工厂协议获取对应的对象-(id<Map>)getMap{
return [[BaiduMap alloc]init];
}
-(id<Location>)getLocation{
return [[BaiduLocation alloc]init];
}
//地图协议@protocol Map <NSObject>
-(UIView *)getView:(CGRect)frame;
@end
//地图协议实现@implementation BaiduMap
-(UIView *)getView:(CGRect)frame{
UILabel * la = [[UILabel alloc]init];
la.backgroundColor = [UIColor redColor];
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;
}