Android从零开始搭建MVVM架构(4,android面试基础题记不住

前言

九月裸辞从长沙跑到上海,跑了一个月的面试,本月中旬终于拿到了爱奇艺的高级工程师offer。

做Android开发整4年有余,但是这一年才是最充实的,我花一年时间努力,送给了自己一个完美的蜕变!

寒冬裁员潮给我的危机感

我普通本科毕业,在长沙待了四年,其中只换过两家公司。去年这个时候,公司业绩不好要裁人。主管平时跟我关系比较好,说我本来也在被裁的考率名额中的,他帮我跟领导说了一堆好话才没事。我请主管吃了一顿火锅。

但是我无法像以前那么心安理得混日子了。因为我去年首付买了房。原本想着每个月稳定税后拿个8k的工资。挺满足的(8k在长沙算中高水平了)

想不到我要求这么低还差点被淘汰了??

2.1.4、@Entity里的外键约束

同样以之前的Person作为父类,我们再定一个衣服类Clothes。(这里先省略Dao,Database,Room步骤,后面会细讲)

Clothes:

@Entity(foreignKeys = @ForeignKey(entity = Person.class,parentColumns = “uid”,childColumns = “father_id”))
public class Clothes {
@PrimaryKey(autoGenerate = true)
private int id;
private String color;
private int father_id;
//…省略get和set
}

好多人不知道外键约束是什么意思,这里我们先往里面插数据,然后我们看看db里的数据:

第一步:我们往Person里面插入2填数据
1、(uid =1 name = 岩浆 age =18)
2、(uid =2 name = 小学生 age=10);

第二部:我们往衣服里面插入3条数据
1、(id = 1 color = 红色 father_id = 1)
2、(id = 2 color = 黑色 father_id = 1)
3、(id = 3 color = 红色 father_id = 2)

这里其实显而易见,可以先认为,person岩浆有2件衣服,红色和黑色的衣服;person小学生有1件衣服,红色的衣服。我们看看表是怎么样的。意思就是用parentColumns = “uid”(person的uid字段)作为childColumns = “father_id”(clothes的father_id字段)。这里就相当于约束到了。先不急,我们看看2张表。

person表(后面会有教程,教你怎么看db数据库):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kEafRvv0-1649750630762)(https://user-gold-cdn.xitu.io/2019/10/11/16dba6ad66ce7b6c?imageView2/0/w/1280/h/960/ignore-error/1)]

clothes表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-96k90PMX-1649750630763)(https://user-gold-cdn.xitu.io/2019/10/11/16dba6bc2f868066?imageView2/0/w/1280/h/960/ignore-error/1)]

那么为什么说是外键约束呢?当然这里有操作。如下:

@Entity(foreignKeys = @ForeignKey(onDelete = CASCADE,onUpdate = CASCADE,entity = Person.class,parentColumns = “uid”,childColumns = “father_id”))
public class Clothes {

}

这里我加了2个动作,在删除和更新的时候用了onDelete = CASCADE,onUpdate = CASCADE。这里动作有以下:

    • 0
      点赞
    • 1
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    Android MVVM 架构是一种基于 Model-View-ViewModel(模型-视图-视图模型)设计模式的架构,它旨在实现 Android 应用程序的高内聚、低耦合、可测试性和可维护性。在 MVVM 架构中,View(视图)和 ViewModel(视图模型)之间通过数据绑定进行通信,ViewModel(视图模型)和 Model(模型)之间通过业务逻辑进行通信。 MVVM 架构将应用程序分为三个部分: 1. Model:处理数据和业务逻辑,与数据库、网络、API 等打交道。 2. View:负责显示 UI、处理用户输入和事件,是用户与应用程序交互的界面。 3. ViewModel:作为 View 和 Model 之间的桥梁,处理视图逻辑、业务逻辑和数据绑定,将 Model 中的数据转换为 View 可以显示的数据。 在 MVVM 架构中,View 和 ViewModel 之间通过数据绑定实现双向通信,View 可以观察 ViewModel 中的数据变化,并及时更新 UI,同时用户的操作也会触发 ViewModel 中的业务逻辑,从而实现 View 和 Model 的解耦。 MVVM 架构的优点包括: 1. 高内聚、低耦合:各个模块之间的职责清晰明确,代码结构清晰,易于维护。 2. 可测试性:ViewModel 和 Model 都是纯 Java 类,不依赖 Android 系统,易于编写单元测试。 3. 可维护性:MVVM 架构使得代码易于维护和扩展,添加新功能时可以只修改 ViewModel 或 Model,而不影响 View。 总之,MVVM 架构是一种适用于 Android 应用程序的高效、可维护的架构,可以提高开发效率、代码质量和用户体验。

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值