http://www.olinone.com/?p=429
看下面的代码
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
@protocol ApiServiceProtocol <NSObject>
- (void)requestNetWithUrl:(NSURL *)url Param:(NSDictionary *)param;
@end
@interface NSObject (ApiServiceProtocol) <ApiServiceProtocol>
@end
@implementation NSObject (ApiServiceProtocol)
- (void)requestNetWithUrl:(NSURL *)url Param:(NSDictionary *)param {
ApiService *apiSrevice = [ApiService new];
apiSrevice.url = url;
apiSrevice.param = param;
[apiSrevice execNetRequest];
}
@end
|
这样想确实是,回头再想想,如果采取方法2 是不是接口需要暴露在.H中,采用方法1接口不需要暴露在,只包含相应的protocol,做实现判断即可,以后是谁现实的不关心。
第二部分
下面的APIserver protocol 是否多余?
目前看是多余的。
但考虑,如果对外还有数据统计,这时候怎么发送,如果APIServer 同事也实现了数据统计发送协议,一个对象就可以全部搞定
要不ApiServicePassthrough还需要再增加一个 实现datastatistic 协议的对象。
这块不一定正确,只是个人的想法。
@protocol ApiServiceProtocol <NSObject>
- (void)requestNetWithUrl:(NSURL *)url Param:(NSDictionary *)param;
@end
@protocol ApiService <ApiServiceProtocol>
// private functions
@end
@interface ApiServicePassthrough : NSObject
@property (nonatomic, strong) NSURL *url;
@property (nonatomic, strong) NSDictionary *param;
- (instancetype)initWithApiService:(id<ApiService>)apiService;
- (void)execNetRequest;
@end