美文网首页
不错的设计思路

不错的设计思路

作者: 活最好的自己 | 来源:发表于2017-08-08 10:40 被阅读7次

    1.开发中的 AOP 思路

    1. 代理模式
      ① 对于 UITableViewCell 中的跳转点击事件, 而该 cell 不知道它所在的UIViewController 是谁, 就需要向上一级传递这个点击事件, 直到找到当前控制器, 从对应的 UINavigationController 跳转到到一个指定的控制器.
      ② 传递事件的过程可能比较复杂, 设置一个又一个的代理, 于是新的自我管理的模式就应运而生了.
    2. Self-Managed:
      为了让每个 cell 各自处理自己的事情, 可以让每个子控件都拥有同一个公共管理类, 通过这个公共管理类来调用各个层级的控件.
    3. 为了降低耦合, 快速地添加或删除某个功能的代码, 可以使用协议. 如春哥的直播间功能, 直接定义一个遵循某些协议的对象, 就能在直播间的主控制器中的特定方法中, 调用这些对象实现的协议方法, 间接地帮助新功能快速调用主控制器的方法, 很类似 collectionview 的代理方法.

    2.消息分发机制

    1. 在一个父视图中, 添加多个子视图, 而且这些子视图都需要被父视图调用执行某些相似的操作, 可以把子视图装进一个数组里, 在父视图里遍历有没有实现对应的方法, 按照实现情况来调用.

    3. 分离

    RoomRootView.m 中实现所有的子视图的懒加载创建, 在 RoomRootLayout 中实现- (void)createLayout:(PTVRoomRootView*)view;方法来对 RoomRootView.m 中的视图添加到父视图 RoomRootView 中, 并布局.

    或在 RoomRootView.m 一级视图中实现所有的二级视图子视图的懒加载创建, 在 RoomRootLayout 中实现- (void)createLayout:(PTVRoomRootView*)view;方法来对 RoomRootView.m 中的视图添加到父视图 RoomRootView 中, 并布局, 同时实现- (void)makePortraitLiveVideoLayout:(PTVRoomPortraitView*)view;方法, 来添加PTVRoomPortraitView的子视图及其布局.

    4. 复用

    在创建新页面的时候, 最好考虑复用的情况, 即配置了 schema 跳转的情况, 通过几个参数, 就能正常展示.

    相关文章

      网友评论

          本文标题:不错的设计思路

          本文链接:https://www.haomeiwen.com/subject/noftrxtx.html