自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (46)
  • 收藏
  • 关注

原创 java 注释和泛型

比较好的Java注释文章: Java 注解完全解析. 比较好的Java范型文章: Java泛型详解:和Class的使用。泛型类,泛型方法的详细使用实例.

2021-04-25 15:33:34 128

原创 六大设计原则

目录一、单一职责原则1. 定义2. 特点3. 反面实例4. 重点5. 适用范围6、重点二、里氏替换原则1、定义2、需求3、优缺点4. 重点三、依赖倒置原则1、定义2、问题由来3、依赖倒置好处4、依赖倒置注入实现5、依赖倒置本质6、注意点7、使用场景四、接口隔离原则1、定义2、单一职责与接口隔离区别3、特点4、原子接口划分原则五、迪米特法则1、定义2、生活示例看代码3、优缺点六、开闭原则1、定义2、优点总结: 一、单一职责原则 1. 定义   单一职责原则(SRP:Single responsibility

2021-04-22 16:44:59 344

原创 迭代器模式

定义: 提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。 优缺点 优点   简化了遍历方式,对于对象集合的遍历,还是比较麻烦的,对于数组或者有序列表,我们尚可以通过游标来取得,但用户需要在对集合了解很清楚的前提下,自行遍历对象,但是对于hash表来说,用户遍历起来就比较麻烦了。而引入了迭代器方法后,用户用起来就简单的多了。   可以提供多种遍历方式,比如说对有序列表,我们可以根据需要提供正序遍历,倒序遍历两种迭代器,用户用起来只需要得到我们实现好的迭代器,就可以方便的对集合进

2021-04-21 17:15:44 56

原创 策略模式

策略模式 定义     策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式让算法独立于使它的客户独立而变化。 角色 环境(Context)角色:持有一个Strategy的引用 抽象策略(Strategy)角色 :这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。 具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。 需求    假设现在要一个上商店个搞活动。 对所有的高级会员打20%的促销折扣;对中级会员打10

2021-04-20 17:25:45 65

原创 状态模式

定义   当一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。又称状态对象模式,状态模式是对象的行为模式。 角色 环境(Context)角色 上下文:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个定义了对象的当前状态 抽象状态(State)角色 定义一个接口,用以封装环境(Context)对象的一个特定的状态所对应的行为。 具体状态(ConcreteState)角色 每一个具体状态类都实现了环境(Context)的一个状态所对应的行为。 使用场景

2021-04-19 13:54:02 61

原创 观察者模式

定义: 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 角色 抽象主题(Subject)角色 抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者。 抽象主题提供一个接口,可以增加和删除观察者对象,抽象主题角色又叫做抽象被观察者(Observable)角色。 具体主题(ConcreteSubject)角色 将有关状态存入具体观

2021-04-14 15:03:38 59

原创 模板模式

定义: 定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类不改变算法的结构即可重复定义算法的某些特点步骤。 角色: AbstractClass抽象类,定义算法结构,还可以提供通用实现。 ConcreteClass具体实现类,选择性的重定义算法中某些特定步骤。 解决的问题: 一些方法通用,却在每一个子类都重新写了这一方法。 优缺点: 优点: 封装不变部分,扩展可变部分。 提取公共代码,便于维护。 行为由父类控制,子类实现。 缺点: 每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得

2021-04-14 14:05:57 61

原创 解释器模式

介绍: 解释器是一种用的比较少的行为模式,其提供了一种解释语言的语法,或者表达式的方式。该模式定义了一个表达式的接口。 运用: 手机号码的验证 移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 联通:130、131、132、152、155、156、185、186 电信:133、153、180、189、(1349卫通) 正则表达式"((13[0-9])|(15[4,\D])|(18[0,5-9]))\d{8}$" x

2021-04-14 10:58:12 58

原创 命令模式

定义: 将请求封装成一个对象,从而让用户使用不同的请求把客户端参数化。请求排队或者记录请求日志,以及支持可撤销的操作。 模式的使用场景 系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。 系统需要在不同的时间指定请求、将请求排队和执行请求。 系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。 系统需要将一组操作组合在一起。 角色: Command命令角色 : 定义命令的接口,声明具体命令类需要执行的方法。这是一个抽象角色。 ConcreteCommand具体命令角色: 命

2021-04-13 10:59:38 69

原创 责任链模式

AbstractRequest.java public abstract class AbstractRequest { private Object object; public AbstractRequest(Object object) { this.object = object; } /** * 获取请求级别 */ public abstract int getRequestLevel(); } Request1.java public class

2021-04-10 22:24:21 74

原创 建造者模式

需求:用户需要建房子 流程:用户(建房子)—> 设计者(设计)—> 工人(建造房子) 原始代码: Room.java package com.test.lib; /** * 建造的房子 */ public class Room { private String window; private String floor; public String getWindow() { return window; } public voi

2021-04-09 16:10:47 83

原创 AOP面向切面设计编程

下载aspectj 地址 http://www.eclipse.org/aspectj/downloads.php 下载aspectj的adt地址http://www.eclipse.org/ajdt/downloads/#43zips build.gradle aspectJ 写法 http://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/ demo实例代码: app目录下build.gradle文件配

2021-04-08 16:30:21 80

WorkManager源码原理研究

WorkManager源码原理研究

2023-12-24

Navigation源码原理解析

Navigation源码原理解析

2023-12-24

Room应用与源码学习

Room应用与源码学习

2023-12-24

Jetpack之DataBinding技术实战

Jetpack之DataBinding技术实战

2023-12-24

手写一套注入注解绑定框架

手写一套注入注解绑定框架

2023-12-24

Hilt注入技术实现隔离层架构

Hilt注入技术实现隔离层架构

2023-12-24

移动端IOC注入技术Dagger2

移动端IOC注入技术Dagger2

2023-12-24

Lifecycle源码原理解析

Lifecycle源码原理解析

2023-12-24

LiveData源码原理解析

LiveData源码原理解析

2023-12-24

ViewModel综合实战解析

ViewModel综合实战解析

2023-12-24

注解+ 反射实例demo

注解 + 反射实例demo

2022-11-29

三级缓存 + hook 功能demo示例

三级缓存 + hook 功能demo示例

2022-11-11

装饰器模式实现简单demo

装饰器模式实现简单demo

2022-11-08

Android相关学习资料,包含源码和FrameWork内核j解析

可能是2020年最全最详细的Android面试题及答案解析(379页) + Android Framework 开发揭秘 + Android Framework精编内核解析 + Android 百大框架源码解析

2022-11-07

Rxjava demo 手写源码demo示例

根据Rxjava源码仿照写的一个简单demo示例

2022-11-07

手写图片加载Glide框架2

手写图片加载Glide框架2

2022-10-02

手写图片加载Glide框架

手写图片加载Glide框架

2022-10-01

Android与H5之间的调用demo

Android与H5之间的调用demo

2022-08-15

包含静态代理和动态代理demo代码

包含静态代理和动态代理demo代码

2021-07-14

Rxjava简单的示例2时序图.oom

Rxjava简单的示例2时序图.oom

2021-07-13

Rxjava简单的示例1时序图.oom

Rxjava简单的示例1时序图.oom

2021-07-13

图片加载框架时序图.oom

图片加载框架时序图

2021-07-13

ImageLoaderDemo.rar

图片加载框架demo代码

2021-07-13

HttpDemo.rar

网络访问框架---框架中涉及到重试机制和高并发操作

2021-07-08

RxJavaDemo22.rar

手写RxJava基础框架

2021-07-06

RxjavaDemo2.rar

Rxjava基本使用,增加了主线程、子线程相关的处理

2021-06-29

RxJavaDemo.rar

简单的Rxjavademo

2021-06-29

VolleyDemo3--数据库分库实现,及全量升级.rar

网络访问框架,包括下载、断电续传、数据库分库实现,及全量升级

2021-06-23

SortAlgorithm.rar

几种今典的排序算法

2021-06-10

VolleyDemo2--网络下载.rar

有关网络下载的demo

2021-06-03

VolleyDemo1--网络请求.rar

有关网络请求的demo

2021-06-03

HotFixDemo.rar

热修复相关demo示例

2021-06-03

MVVMDemo---listView的使用.rar

MVVM架构中listView的使用

2021-06-01

MVVMDemo--view和model之间的互相更改.rar

view层与model层之间更改,会导致另外一个层的内容发生改变

2021-06-01

MVPDemo--优化版本.rar

MVPDemo--优化版本

2021-06-01

MVPDemo--基础版本.rar

MVPDemo--基础版本

2021-06-01

IntentServiceDemo.rar

IntentService的使用

2021-05-27

PermissionBroadcastDemo.rar

自定义权限在广播中的使用

2021-05-26

PermissionDemo.rar

自定义权限在Activity中的使用

2021-05-26

ParcelableDemo.rar

Android 序列化Parcelable示例demo

2021-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除