类依赖关系的可视化(Objective-C)

对类的依赖关系可视化的好处:松耦合的代码设计

写出简洁,优雅的代码是每一个程序员的追求。但是实际的项目过程中,我们时常面对着很多糟糕的代码,我们可能在同一个项目中重复的写着其他人已经完成过的工作,抑或遗留一些永远不会再用到的历史代码,抑或组件之间的相互依赖过于复杂,不同的类责任划分不合理,某些类承担了过于繁重的工作。这些情况都会给我们留下一个紧耦合的项目,不方便维护和测试。
通过对导入类的可视化,可以清晰的查看项目中的各个类之间的依赖关系,模块与功能划分是否耦合度过高,是否有功能重复的类等等,不仅如此,对于学习或者熟悉新的项目也是事半功倍的。

案例展示:

下面是第三方库AFNetworking的类之间的依赖关系图

AF.jpg

从图中我们可以清晰地看出AFNetworking中类与类之间的依赖关系,其中AFURLSessionManager处于一个核心的位置,结合不同模块的类做了核心的工作,AFHTTPSessionManager引用了AFURLSessionManager,并在其核心功能上做了封装,为使用者提供出更加易用的接口。

可视化操作步骤:

通过编写python脚本,对目录中的每个类文件进行中提取导入,将结果生成.dot文件,再用OmniGraffle打开即可。

  1. 编写python脚本,这里已经有一个开源项目,可以直接下载源代码,点击链接。

  2. 打开终端,键入:

$ cd objc_dep-master 

进入脚本所在目录,键入:

$ python objc_dep.py  /Users/XXX/AFNetworking  > fswalker.dot

其中/Users/XXX/AFNetworking为项目路径,fswalker.dot为生成可视化文件的文件名,该文件和脚本在同一个目录下。

  1. 安装OmniGraffle,并用OmniGraffle打开fswalker.dot文件即可。

参考:https://github.com/nst/objc_dep

你可能感兴趣的:(类依赖关系的可视化(Objective-C))