设计模式&架构
晓果博客
You’ll never realize how strong you are until you have no other choice but to be strong<br>你永远都不会知道自己到底有多坚强,直到有一天你除了坚强别无选择。
展开
-
阿里ARouter路由核心原理(打造一个自己的路由)
到目前为止,相信市面上大多数android开发人员都有使用过阿里ARouter在自己的项目中,那么ARouter是如何实现解耦的呢?下面我们来实现一个简版的ARouter路由(HRouter)。 首先创建两个java Libray hrouter_annotations:为创建注解使用 hrouter-complier:为注册注解处理器使用 创建注解类Route //声明注解是放...原创 2019-12-06 18:44:40 · 4635 阅读 · 1 评论 -
android设计模式—观察者设计模式
定义 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 角色 抽象主题(Subject)角色 抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里, 每个主题都可以有任何数量的观察者。抽象主题提供一个接口, 可以增加和删除观察者...原创 2019-03-07 17:42:35 · 266 阅读 · 0 评论 -
android设计模式—模板方法设计模式
定义 定义一个操作中的算法框架,而将一些步骤延迟到子类中, 使得子类不改变算法的结构即可重复定义算法的某些特点步骤。 角色 AbstractClass抽象类,定义算法结构,还可以提供通用实现 ConcreteClass具体实现类,选择性的重定义算法中某些特定步骤 解决的问题 一些方法通用,却在每一个子类都重新写了这一方法。 优缺点 优点: 1、封装不变...原创 2019-03-07 14:07:09 · 273 阅读 · 0 评论 -
打造属于自己的IOC注解框架
效果 java注解-ElementType详解 java中元注解有四个: @Retention @Target @Document @Inherited; @Retention:注解的保留位置 (什么时候生效) //注解仅存在于源码中,在class字节码文件中不包含 @Retention(RetentionPolicy.SOURCE) ...原创 2018-06-20 22:32:19 · 2863 阅读 · 0 评论 -
android 面向切面(AOP)编程简例
关于AOP编程网上有很多介绍,这里就只介绍一个例子,讲述怎么使用吧! 主要的目的还是为了保存aspectjrt在android中的配置,方便查找 这里以判断网络为例(个人感觉AOP最好用的就是代替代码中大量的if-else重复判断) 首先配置aspectjrt 在项目的build.gradle中进行配置 buildscript { repositories { ...原创 2018-06-25 18:25:39 · 3325 阅读 · 0 评论 -
android设计模式—命令设计模式
定义: 将请求封装成一个对象,从而让用户使用不同的请求吧客户端参数化。请求排队或者记录请求日志,以及支持可撤销的操作。 模式的使用场景: 1.系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。 2.系统需要在不同的时间指定请求、将请求排队和执行请求。 3.系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。 4.系统需要将一组操作组合在一起。 角...原创 2019-03-06 17:46:36 · 310 阅读 · 0 评论 -
android设计模式—建造者(Builder)设计模式
定义: 将一个复杂的构建与他的表示分离,使得同样的构建过程可以创建不同的表示 建造者模式通常包括下面几个角色: builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。 public interface Build { public void makeWindow(); public ...原创 2019-03-05 16:49:01 · 523 阅读 · 0 评论 -
android设计模式—单例设计模式
适用场景: 单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等。如: 1.需要频繁实例化然后销毁的对象。 2.创建对象时耗时过多或者耗资源过多,但又经常用到的对象。 3.有状态的工具类对象。 4.频繁访问数据库或文件的对象。 以下都是单例模式的经典使用场景: 1.资源共享的情况下,避免由于资源操作时导致的...原创 2019-03-01 12:46:33 · 279 阅读 · 0 评论 -
android设计模式—原型设计模式
定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象 使用场景 1. 通过new产生一个对象需要非常繁琐的数据准备或访问权限,这时可以使用原型模式 2. 一个对象需要供给其他对象访问,而且各个对象都需要修改其值时,可以拷贝多个对象供调用者访问,即保护性拷贝 浅拷贝和深拷贝 浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值,这个方式被称为浅拷贝。 其...原创 2019-02-28 17:19:25 · 307 阅读 · 0 评论 -
android设计模式—简单工厂和工厂方法(抽象)设计模式
简单工厂 一般提供创建对象的功能,不需要关心具体的实现,在需要某个实例对象的时候,直接传入某个特定的值,直接得到所需实例对象,不需要反复去创建。 一般的流程是:规范接口—&amp;amp;amp;amp;gt;实现类—&amp;amp;amp;amp;gt;工厂创建 定义规范接口: public interface BaseInterface { } 创建实体类,并实现规范接口 /** * 目标实现类 */ public cla原创 2019-02-28 11:44:52 · 562 阅读 · 0 评论