《Android 源码设计模式解析与实战》学习笔记
2016-09-15 11:52
411 查看
1 面向对象的六大原则
单一职责原则英文名称:Single Responsibility Principle,缩写SRP。定义:对于一个类而言,应该仅有一个引起它变化的原因。
开闭原则
英文名称:Open Close Principle,缩写OCP。定义:软件中的对象(类、模块、函数等)应该对于扩展是开放的,对于修改是封闭的。
里氏替换原则
英文名称:Liskov Substitution Principle,缩写LSP。定义:所有引用父类的地方必须能够透明地使用其子类的对象。
依赖倒置原则
英文名称:Dependency Inversion Principle,缩写DIP。定义:通过高层次的模块不依赖低层次的模块的实现细节达到解耦的目的。
接口隔离原则
英文名称:Interface Segregation Principle,缩写ISP。定义:类间的依赖关系应该建立在最小的接口上。
最少知识原则
英文名称:Least Knowledge Principle,缩写LKP。定义:一个对象应该对其他对象有最少的了解。
2 单例模式
单例模式须确保线程安全、防止反序列化导致重新生成实例。常用的实现方式如下:
Double CheckLock (DCL)
public class Singleton { private static Singleton sInstance; private Singleton() { } public static Singleton getInstance() { if (sInstance == null) { synchronized (Singleton.class) { if (sInstance == null) { sInstance = new Singleton(); } } } return sInstance; } }
优点:延迟加载,减少了同步开销
缺点:高并发环境下有很少概率的缺陷导致单例模式失效
静态内部类单例模式
public class Singleton { private static class SingletonHolder { private static final Singleton sInstance = new Singleton(); } private Context mContext; private Singleton() { } public static Singleton getsInstance() { return SingletonHolder.sInstance; } public Singleton init(Context context) { if (context != null && mContext == null) { mContext = context.getApplicationContext(); } return this; } }
优点:延迟加载,线程安全,推荐使用的单例模式
3 Builder模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。相关文章推荐
- android源码设计模式解析与实战 笔记 8.6节
- android源码设计模式解析与实战 笔记 6.6节
- android源码设计模式解析与实战 笔记 4.8节
- android源码设计模式解析与实战 笔记 5.7节
- android源码设计模式解析与实战 笔记 3.7节
- <<Android源码设计模式解析与实战>>读书笔记----- Android NDK开发学习
- Android源码设计模式解析与实战(Based on Lollipop) 第一章 读书笔记
- Android源码设计模式解析与实战——面向对象六大原则(一)
- Android 源码设计模式解析与实战 第2版 读书笔记1.3 里氏替换原则
- Android源码设计模式解析与实战(一)
- android源码设计模式解析与实战 读书笔记 2 单例模式(下)
- Android源码设计模式解析与实战(二)
- 读Android源码设计模式解析与实战(第一章面向对象的六大原则)
- Android源码设计模式解析与实战(九)
- Android源码设计模式解析与实战(八)
- Android源码设计模式解析与实战 (总结)
- Android源码设计模式解析与实战(四)
- Android 源码设计模式解析与实战
- Android源码设计模式解析与实战
- Android源码设计模式解析与实战(三)