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