软件设计原则(一): 依赖倒置原则 发表于 2020-02-23 如何不依赖代码却可以复用它的功能 在软件设计中为了建立清晰的软件分层关系,引入了软件分层设计,也是便于高层业务模块依赖低层模块。在一般的应用软件中,策略层会依赖方法层,业务逻辑层会依赖数据存储层。 图1 这是我们正常的软件设计。 但是这样的设计会带来一些问题。 策略层对方程层和工具层是传递依赖的 ... 阅读全文 »
怎样选择保险 发表于 2019-11-18 最近学习完得到上面的课程《保险》,做了一份总结,对保险有个大概的认知,知道以后怎样去选择对应的保险。 这里只是做一个简要的总结,如果想要详细了解,可以去得到上订阅课程。 保险的功能、原则明确保险的功能 对冲风险 跨时期分配资源 首先要明确保险的功能,保险最主要的功能是对冲风险和跨时期分配资源,虽 ... 阅读全文 »
设计模式总结 发表于 2019-10-02 # 以前学设计模式的时候,学地云里雾里的。最近把书本《设计模式-可复用面向对象软件的基础》重新学了一遍,收获良多,对设计模式有了更深的理解。 设计模式是软件工程中一种通用的,可复用的一种解决方案,它是一种解决问题的通用模板。 根据《设计模式》这本书的分类,设计模式分为三种 创建型 它是与对象的 ... 阅读全文 »
State 状态模式在 Android 多弹窗的应用 发表于 2019-08-24 序言最近项目的首页弹窗进行调整,要加几个弹窗,而且还是要按顺序弹出的。原来的只有悬浮窗权限弹窗和存储权限弹窗,用一两个标志位就可以解决了。现在加了隐私协议弹窗和青少年模式弹窗,变成了四个弹窗,如果还是按照原来的方法,即加标志位解决,逻辑机会变得非常复杂,也很容易出 Bug. 经过调研,发现可以用 s ... 阅读全文 »
Android 使用 Aspectj 限制快速点击 发表于 2019-07-07 Android 使用 Aspectj 限制快速点击在AspectJ 在 Android 中的使用中,介绍了 Aspectj 的基本知识及其在 Android 中的基本使用,在这篇将会介绍如何使用 Aspectj 在 Android 中限制快速点击 1. 配置依赖建立 clicklimt 的 lib, ... 阅读全文 »
AspectJ在Android中的使用 发表于 2019-06-29 #AspectJ 在 Android 中的使用在介绍 AspectJ 之前,我们先看看常见的几种编程架构思想。 面向对象编程 Object Oriented Programming 面向过程编程 Procedure Oriented Programming 面向切面编程 Aspect Orient ... 阅读全文 »
Glide 源码简要分析 发表于 2019-02-23 一、前言Glide 是 Android 比较好的图片加载库,最近的项目中使用到了,所以有必要去了解一下 Glide 的源码。Glide 的源码非常多,不可能所有的东西都去了解,所以结合 郭霖的博客 对 Glide 的源码做了简要的分析。 对 Glide 的了解,主要想解决一下的几个问题: Gli ... 阅读全文 »
ReentrantLock、synchronized 与 ReadWriteLock 发表于 2019-01-07 ReentrantLock、synchronized 与 ReadWriteLock一. ReentrantLockReentrantLock 并不是内置锁 synchronized 的替代方式,而是当 synchronized 加锁机制不适用时,作为一种可选择的高级功能。ReentrantLock ... 阅读全文 »
Java 的反射 发表于 2018-11-24 #Java 反射Java 反射是在 java.lang.reflect 包类,包含 Constructor、Method、Field 的反射。 域 涉及的方法 说明 创建类 Constructor Class.getConstructor( ) Constructor.newInsta ... 阅读全文 »
Java 注解 发表于 2018-09-12 Java 注解了解 Java 注解,对于我们了解 JavaPoet, ARouter, Butterknife 这些开源库是必须的。同时也可以结合 Android 中独有的注解,一起看,会加深理解。我之前写过Android 中的注解 一文。 以下是正题: 注解是那些插入到源码中使用其他工具可以对其进 ... 阅读全文 »