网络架构

网络架构

架构设计

架构设计

核心层类图

Paste_Image.png

Service存在的意义

一个接口(API)可能根据不同的参数实现不同的功能,那么这些逻辑如果全在API层,则会使得API层耦合严重,代码混乱,同样如果在应用层也不好。
Service层就是为了保证API层功能单一、结构简单。进行一些业务逻辑上的处理。
比如:

/room/communicate/cancel 的功能是移除连麦申请,但是会根据参数opt来判断是清空列表还是移除某个人。
这时:API层只需负责根据参数实现接口的访问,具体是什么样的参数,就由Service层来提供。

API层代码,只有一个方法

/**
 取消连麦申请

 @param roomID 房间ID
 @param type 类型,取消单个还是全部
 @param uid 如果取消单个,那么这个必填,用户ID
 @param block 回调
 @return 请求ID
 */
+ (NSString *)revokeMicWithRoomID:(ULLInteger)roomID type:(NSInteger)type removedUID:(ULLInteger)uid callback:(ULAPIResultCallback)block;

Service层代码,有两个方法

/**
 取消单人连麦申请

 @param roomID 房间ID
 @param uid 用户ID
 @param block 回调
 @return 请求ID
 */
+ (NSString *)revokeMicWithRoomID:(ULLInteger)roomID removedUID:(ULLInteger)uid callback:(void (^)(BOOL isSuccess, NSString *message))block;


/**
 取消房间内所有人的连麦申请

 @param roomID 房间ID
 @param block 回调
 @return 请求ID
 */
+ (NSString *)revokeMicWithRoomID:(ULLInteger)roomID callback:(void (^)(BOOL isSuccess, NSString *message))block;

推荐阅读更多精彩内容

  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 3,334评论 1 22
  • 转载:千万级规模高性能、高并发的网络架构经验分享 作者简介: 卫向军,毕业后在微软工作五年,接着去了金山云,做的金...
    meng_philip123阅读 760评论 0 23
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 138,615评论 20 591
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 87,661评论 13 122
  • 花开有你相伴 花落空无一人。 六年在左右 何时有你曾安 回首再看 童年默默离开 那时我们同桌 你的前桌 我的后座 ...
    东方梦泽阅读 93评论 4 3