美文网首页
类依赖关系的可视化(Objective-C)

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

作者: sculg | 来源:发表于2019-06-27 18:37 被阅读0次
    对类的依赖关系可视化的好处:松耦合的代码设计

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

    案例展示:

    下面是第三方库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)

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