Android源码分析与设计模式
文章平均质量分 84
Decade_try
不必执着于你想要的,你所需要的是不断提升自己。
展开
-
单例模式
应用场景: 整个系统只需要一个全局对象,如一个应用中只有一个配置文件或者ImagerLoader实例,ImagerLoader中含有线程池,缓存系统,网络请求等,故不能自由的构造对象。单例模式常见的有三类: 1.饿汉式 2.懒汉式 3.加锁式单例模式实现的关键: 1.私有的构造函数–>确保外界无法构造 2.自身持有一个对象–>私有且静态的,保证全局唯一 3.公有的静态...原创 2017-10-25 22:08:56 · 183 阅读 · 0 评论 -
建造者模式
建造者模式: 将构建复杂对象的过程和它的部件解耦,使得构建构成和部件隔离开来,使得同样的构造过程可以创建不同的表示,如生产电脑的过程等。可以看成做东西,怎么做(Director)?做什么(Product)?谁来做(Builder)?来看待该模式。 使用场景: 1.相同的方法不同的执行顺序,产生不同的事件结果。 2.当初始化一个对象特别复杂,如参数特别多或者很多参数具有默认值时。—>链式构造原创 2017-11-14 23:03:10 · 209 阅读 · 0 评论 -
原型模式
原型模式的定义: 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。使用场景: 1.类的初始化需要非常多资源时(数据硬件资源),通过原型拷贝避免这些消耗 2.通过new一个对象需要非常繁琐的数据准备和访问权限时 3.一个对象要供给多个对象访问,而且多个对象都肯要修改其值时,可以通过原型模式拷贝多个对象共调用者使用原型模式多用于创建复杂或者构造耗时的实例,这时复制一个已有的实例使得原创 2017-12-07 22:00:09 · 353 阅读 · 0 评论 -
工厂方法模式
工厂方法模式的定义:用于创建对象的接口,让子类决定实例化哪个类。 工厂方法模式的使用场景: 在需要生成复杂对象的地方都可以使用 工厂方法的UML类图: 工厂方法的简单实现://抽象产品及具体产品类public abstract class Product { abstract void method();}public class ProductA ext原创 2018-01-17 22:19:35 · 226 阅读 · 0 评论 -
策略模式
模式定义 定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。核心: 将算法封装到子类中,由接口对象管理,根据初始化的对象选择需要的策略算法。模式结构 策略模式包含如下角色: Context: 环境类 Strategy: 抽象策略类 ConcreteStrategy: 具体策略类代码实现原创 2018-01-29 20:02:40 · 253 阅读 · 0 评论 -
观察者模式与RegistrantList机制
观测者模式介绍: 常用于GUI系统,订阅发布系统。其主要作用就是解耦。将观察者和被观察者解耦。 观察者模式定义: 定义对象间一对多的关系,每当一个对象改变时所有依赖于它的对象都会得到通知并自动更新。简单实现: 1.主题拥有一个观察者的对象集合 2.有注册去注册方法和更新方法,其中更新方法会调用观察者对象自身的update方法原创 2018-01-27 11:30:06 · 1587 阅读 · 0 评论 -
Android源码分析之Handler机制
Handler机制的作用: 1.UI更新 2.消息处理机制,可以用来进行异步通信为何设计Handle机制? 主要是为了解决并发处理的问题, 如果在多个子线程直接更新主线程(UI线程)会导致界面更新混乱,那么如何保证更新同步? 如果引入加锁的话会产生性能下降的问题,故而参考windows消息处理机制,设计了Handle处理。 而使用Handle机制以异步通信的方式进行处理消息,且可以...原创 2018-03-23 17:55:33 · 438 阅读 · 0 评论 -
Native层的handle机制浅析
本文旨在进一步分析MessageQueue.java中的Native方法 private native static long nativeInit();//初始化 private native static void nativeDestroy(long ptr);//销毁 private native void nativePollOnce(long ptr, int...原创 2018-03-28 21:29:25 · 2743 阅读 · 0 评论