您的位置:首页 > 移动开发 > IOS开发

iOS中的模块化开发思路一

2015-07-06 23:18 423 查看

我想不光是在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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: