Java 编程思想笔记(二)

作者: 毛先森 | 来源:发表于2019-03-09 15:47 被阅读5次
博客封面.jpg

前言

阅读《Java 编程思想》,《Android 源码设计模式》这两本书后,发现了以往编码过程中有很多代码可以优化的点,以及当时的优化方案,所以记录下来。

从事 Android 开发快一年时间了,对编码的开始有了感悟,项目需求变更时,我们最好不要直接修改原有代码,最好使用添加的方式来实现,避免破坏原有代码的稳定,最好定期进行部分重构,及时清除代码中的“垃圾”。

单一责任原则

一个类应当包含某功能的全部流程,遵守该选择可提高代码的逻辑清晰度,降低代码耦合,便于以后维护。

  • 目前案例
  • 在某sdk项目中,账号绑定手机邮箱,账号升级,游客账号升级等功能(下面统称为账号升级)是一个让人头疼的东西,因为该流程需要4-5个页面做跳转,最后根据不同流程,显示对应的UI,如何将信息在这几个页面传递呢?最初设想用bundle来临时存储绑定信息,但缺点就是每次跳转到新的页面,就要马上把上个页面的bundle取出来,在需要多个页面跳转时,bundle就不适合该场景了。
  • 方案1:使用SharedPreference,建立一个 BindInfoHelper 类,通过set,get方法将用户信息存储到sp中,这样就避免每次转存信息。因为流程最后要用之前存储的信息来显示不同的UI,所以根据单一责任原则,BindInfoHelper类应当在内部做判断,Actvity,Fragment 就根据该状态值显示UI
  • 方案2:可以使用sqlite数据库存储信息,但当时时间紧迫,就选择了方案一

里氏替换原则

在《Android 源码设计模式》的定义是:一个类型为T1的对象O1,替换代码中类型为T2的对象O2,如果不出现异常,说明t1是t2的父类。

  • 里氏替换的原理基于 Java 三大特性(封装,抽象,继承),Java的父类中实现的方法,子类中一定存在同种方法,反向推导不成立。
  • 目前案例
  • 在某助手app中,由于项目工程比较大,如果要将原有网络框架由 Volley 替换成 Retrofit(在没有将网络框架抽象的情况下),将会是件非常棘手的事情,每个调用都需要修改,谁可以保证不会出错呢?此时利用里氏替换原则,我们应该把网络框架抽出一层来,具体的网路框架继承或者实现该抽象类(接口),以后需要替换的时候只要修改具体实现类,大大减少了工作量。

相关文章

  • Java 编程思想笔记(二)

    前言 阅读《Java 编程思想》,《Android 源码设计模式》这两本书后,发现了以往编码过程中有很多代码可以优...

  • 2021-09-15 JAVA编程思想

    Java编程思想重点笔记(Java开发必看)[https://www.cnblogs.com/softwareof...

  • 知识精讲

    理解Java垃圾回收机制 下图为学习笔记 浅谈 Android 编程思想和架构 看不太懂 教你写Http框架(二)...

  • 第二章 2020-11-04

    Java 编程思想笔记 第二章 一切都是对象 Java 是基于 C++ 的一门面向对象的程序设计语言。 Java ...

  • 《JAVA编程思想》笔记

    《JAVA编程思想》是一本适合有一定java编程基础的用来巩固基础知识,这次也只花了一周的时间从第一章看到了第九章...

  • 「Java编程思想」「笔记」

    第一章 对象导论 "我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵...

  • Java编程思想(二)

    第2章 一切都是对象 这一章主要介绍跟对象相关的工作。包括一个对象的生成,销毁,作用域等等。都是一些细节的知识点。...

  • java编程思想读书笔记二

    泛型 对象和实例是一个意思,类与对象的关系就像数据类型和变量一样。 泛型的主要目的之一就是用来指定类(如:容器)要...

  • 2019-01-30 java编程思想前几章阅读笔记总结

    md文档使用2个空格就是换行 java编程思想阅读笔记 第二章 Java中一切都是对象 使用应用操作对象 首先 j...

  • 《Java编程思想》——《Java编程思想》——

网友评论

    本文标题:Java 编程思想笔记(二)

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