iOS组件化之路-同名文件带来的坑

解决方案

方案 一 最优雅的方式:功能一样的同名文件组件化

这种方式应该是这个问题最优雅的解决方案了,在开发过程中要尽可能的避免项目中存在同名文件,他们往往是实现完全一样的功能的代码,既然我们都已经组件化了,那么同名文件自然而然的要想到做组件化处理,无需放在多个不一样的target中,只需要将这个共同的功能作为依赖库包含在不同的模块中即可。

方案 二 取巧的方案:映射

这种情况仅仅在你不得不使用一个单利,但是你又暂时无法将某个同样的功能从两个target中剥离出来(比如微信支付),那么将会在两个target中共同存在相同的微信SDK,此时支付等功能的回调肯定需要依赖一个中间对象,那么就必须保证无论你是在同一个target下,还是多个target下,都必须是同一个实例对象。而你在不同的target下的同名文件,即使你这个类是单例,实例化对象的时候也不可能返回同一个实例对象,那么此时,只能一方移除该文件,不在引用该类的头文件,使用映射的方式,以字符串生成类名来实例出某个特定的单利(前提是你的单利实例化方法一定要写的够完善),此方案仅仅适合作为临时取巧,仅仅是一种解决方案。