用Dagger2+MVVM写个APP,更直观的展示8皇后算法

  在完成上一篇文章 如何在10行代码内解决8皇后问题 后,我在考虑一个问题,怎么能把这个算法运行的过程更直观的表现出来:一个最简单的想法是,做一个应用,算法每执行一步,棋子也随之变化位置。于是花了点时间做了如下应用:

8-Queens.gif

  麻雀虽小,五脏俱全。这个应用使用Android Jetpack的新组件Viewmodel + LiveData 构建MVVM的三层架构,同时使用Dagger2提供的依赖注入功能减少层次之间的耦合。

程序架构设计

本文程序架构比较简单,分为三层:

  • 单个Activity,单个Viewmodel,单个Model;
  • Model和Viewmodel之间定义了回调接口;
  • viewmodel和activity使用LiveData传递数据和事件;
  • 通过Dagger Android 进行依赖注入,减少各个层次的依赖。

Dagger Android

  Dagger Android不再详细介绍,有兴趣可以参考如下链接:
https://www.jianshu.com/p/0e0d45e9ce38

GitHub 链接

   本文所描述的完整代码可以在 GitHub 上查看,欢迎 fork/star。
https://github.com/lixiangthinker/NQueensAndroid

推荐阅读更多精彩内容