Android MVVM 架构实现 - LiveData 含源码分析

LiveData 是 jetpack 包里的一个组件,这个组件主要的作用是作为一个可观察数据的持有者,它维护一个变量,可以注册监听者,然后再变量修改的时候通知监听者。LiveData 只是一个很小的工具,在 MVVM 架构中,我们一般将 LiveData 对象放到 ViewModel 里,之后有时间会学习一下 ViewModel 的使用,这里先简单介绍一下 LiveData。MutableLive

- 阅读全文 -

纯 C 语言实现泛型编程

数据结构 的实验报告中需要用到泛型栈这种数据结构。可惜 C 语言里根本不存在 泛型 这种东西。不过我们可以使用一些技巧来达到类似于泛型的功能。void*对于类型来说,int* 表示指向 int 类型的指针, char* 表示指向 char 类型的指针。但请注意在 C 语言里,一个指针变量对应的总是内存里的一个位置,而类型只是告诉系统一次取多少字节而已。例如我们在 C 中的数组:char* cp =

- 阅读全文 -

Android MVVM 架构系列之 DataBinding 2

这是上一章的后续,主要讲讲关于 DataBinding 的一些进阶规则。上一篇:Android MVVM 架构系列之 DataBinding更改 Binding 对象名字默认来说,DataBinding 生成的对应 Binding 对象名字是直接将布局文件的名字改成驼峰命名法然后后面加个 Binding ,例如对于 activity_main.xml ,生成的对象为 ActivityMainBin

- 阅读全文 -

Android MVVM 架构系列之 DataBinding

在 Google 的推荐下,MVVM 架构已经成为一种趋势。官方在推动 MVVM 的同时也出了一系列工具帮助我们更好的实现这种架构。DataBinding 就是其中一个很重要的工具。它可以降低代码耦合度,提高可读性和逻辑性。这是第一篇,主要讲简单的实现。对于更加高阶的应用,可以看第二篇:Android MVVM 架构系列之 DataBinding 2启用 DataBinding目前官方推荐的启用

- 阅读全文 -

Android MVP 架构的一种实现模型 - 带 Demo

最近项目有 MVP 架构的需求。于是简单写了 MVP 的一种实现模板。开始吧。MVPmvp 架构是一种设计模式,他没有所谓的标准。只是一种思维上的架构。所以本文介绍的只是其中一种实现模板。MVP 全称 Model - View - Presenter,就是把代码分成了三层。具体可以参考下图:然后来分别讲一下吧我对这三个逻辑层的理解吧。ModelModel 层一般都是全局单例的。用于数据的获取。主要

- 阅读全文 -