type
status
date
slug
summary
tags
category
icon
password
这里写文章的前言:
之前曾经在另一篇文章中分享了Protocol与Delegate到底是什么:Protocol 与 Delegate
而现在在工作中,恰好遇到了一个Pod循环引用的问题,正好记录下尝试使用Protocol与Delegate进行解耦的流程。
💬 问题背景
因为隐私原因,这里使用代称。
首先让我们看一下今天要设计的两个Pod:
- PodBase:部门的基础Pod
- PodSubTool:一个功能相对独立的Pod,用于检测一些场景
现在我遇到的问题如下:
- PodBase 中包含了启动各个独立功能Pod的代码,即 PodBase 会调用 PodSubTool 的start方法,来开启SubTool的检测功能。
- 为了提升 PodSubTool 的检测准确率,现在需要使用 PodBase 中的一个工具方法。
- 由于以上两点,达成一个 PodBase 与 PodSubTool 需要循环引用的局面
- 需要注意的是,这两个Pod,都被同一个主工程 MainProject 所依赖
🔧 解决流程
首先我们先提出一个基本的解决思路:
- PodSubTool 定义协议并持有 delegate,不依赖 PodBase;
- MainProject 中创建一个桥接对象(Bridge/Adapter),实现该协议,内部调用 PodBase;
- 最终在 MainProject 中由 PodBase 创建 PodSubTool 时,顺便设置 delegate。
- Author:akinIan
- URL:blog.akinaustin.space/article/202e7ea2-ebf7-8034-a6f5-cebe72d378cd
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!



