经验之谈—如何避免第三方框架过分的污染我们的项目

40 篇文章 0 订阅
  • 其实一直在纠结。若第三方框架在我们项目中多处地方被使用到,而这个框架又经常更新,若出现更新说:此次更新,修改了之前的什么大bug。若更新之后,造成了我们的项目,无法运行,那么我们要修改的地方就非常多,因为前期对这个框架过分的依赖。怎么办?一个个去找,去修改,那代价是惨重的。
  • 那么如何避免这种情况呢,让这些经常更新,经常变动的框架对我们的项目的影响将到最低呢,我们想,若这个框架只影响到我们项目的一处地方就好了,那么这个问题就迎刃而解了
  • 我们现在拿AFN来做个试验,因为我们的项目中,很多地方都会出现对服务器请求数据的情况,所以多次地方都会引用到AFN这个框架,那么我们这时候想,自定义一个Tool来专门管理加载数据的,然后项目里边就只用到我们自定义的这个Tool来加载数据就行。看看如何写:

ZYHttpTool.h

#import <Foundation/Foundation.h>

@interface ZYHttpTool : NSObject
+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void(^)(id json))success failure:(void(^)(NSError *error))failure;
+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void(^)(id json))success failure:(void(^)(NSError *error))failure;

@end

ZYHttpTool.m中

#import "ZYHttpTool.h"
#import "AFNetworking.h"
@implementation ZYHttpTool
 + (void)get:(NSString *)url params:(NSDictionary *)params success:(void(^)(id json))success failure:(void(^)(NSError *error))failure
{
    //创建请求
    AFHTTPRequestOperationManager  *manager = [AFHTTPRequestOperationManager manager];
    //发送请求
    [manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
        if (success)
        {
           success(responseObject);
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        if (error)
        {
            failure(error);
        }
    }];
}

 + (void)post:(NSString *)url params:(NSDictionary *)params success:(void(^)(id json))success failure:(void(^)(NSError *error))failure
{
    //创建请求
    AFHTTPRequestOperationManager  *manager = [AFHTTPRequestOperationManager manager];
    //发送请求
    [manager POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
        if (success)
        {
            success(responseObject);
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        if (error)
        {
            failure(error);
        }
    }];
}
  • 这样我们的项目中,就只需要引用我们的类就行。而控制器里面对AFN一点也不关心,你删除了AFN他都不知道。现在若AFN出现了很大的变动,那么只会影响到ZYHttpTool。那么到时候我们只需要修改这个文件就行。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值