iOS中的模块化开发思路一
我想不光是在iOS开发中,在其他各种软件产业开发中,模块化开发是必不可少的一种开发模式。
那么,在iOS中如何做到模块化开发、小伙伴们之间并行的有规矩的开发、集成、代码了?答案是,设计模式出。依赖抽象,不依赖具体实现。
第一步,拿到每一个模块的开发任务的小伙伴们,首先不要马上去写各种viewController、subViews、networkApi、dataBaseApi、entity.... 。我想的是,我们应该定义一下接口,告诉其他调用这个模块的小伙伴们,我们这个模块能够干一些什么...
@protocol ZSYCustomerLogicProtocol <ZSYViewModelBaseProtocol> /** * 用户注册 * * @param mobile 手机号 * @param password 登录密码 * @param code 验证码 */ - (ZSYRequest *)registAPIWithMobile:(NSString *)mobile Password:(NSString *)password Code:(NSString *)code; /** * 用户登录 * * @param mobile 手机号 * @param password 登录密码 */ - (ZSYRequest *)loginAPIWithMobile:(NSString *)mobile Password:(NSString *)password; /** * 查询手机号(登录名)是否已注册 * * @param mobile 手机号 * @param block 回传查询到的用户对象 */ - (ZSYRequest *)isRegistAPI:(NSString *)mobile; /** * 验证登录名 * * @param mobile 手机号 */ - (ZSYRequest *)checkMobileAPI:(NSString *)mobile; /** * 保存客户端生成的手势密码到服务器 * * @param mobile 手机号 * @param pwd 手势密码 */ - (ZSYRequest *)saveGesturePasswordAPIWithMobile:(NSString *)mobile Password:(NSString *)pwd; /** * 修改手势密码 * * @param mobile 手机号 * @param oldPwd 原手势密码 * @param newPwd 新手势密码 */ - (ZSYRequest *)updateGesturePasswordAPIWithMobile:(NSString *)mobile OldPwd:(NSString *)oldPwd NewPwd:(NSString *)newPwd; //登录 - (YTKChainRequest *)loginCustomerLogicWithMobile:(NSString *)mobile Password:(NSString *)password ForgetGesturePasswordBlock:(void (^)(void))forgetGestureBlock CreateGesturePasswordBlock:(void (^)(void))createGestureBlock; //注册界面的业务逻辑 【注册新账号】 - (YTKChainRequest *)registCustomerLogicWithMobile:(NSString *)mobile Password:(NSString *)password Code:(NSString *)code GesturePasswordBlock:(void (^)(void))gesturePwdBlock; //登录界面的业务逻辑【找回手势密码 or 登录密码】 - (YTKChainRequest *)findGestureOrLoginPasswordLogicWith:(NSString *)mobile Password:(NSString *)password Code:(NSString *)code GesturePasswordBlock:(void (^)(void))gesturePwdBlock; //注册界面的业务逻辑 【找回密码】 - (YTKChainRequest *)findLoginPasswordLogicWithMobile:(NSString *)mobile; @end
第二步、我们再去给这些定义的接口,做具体的代码实现。
第三步、使用Objection给我们暴露的接口,绑定一个具体实现类。让调用者只通过接口,得到我们的一个具体业务逻辑实现类,完成所有的定义的业务操作。
注意:
Objection真是个好东西,类似Java里面的Spring Ioc。
浙公网安备 33010602011771号