11 2018 档案
摘要:1、概念 状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它所属的类,属于行为型模式。 2、模式结构 环境角色(Context):定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个具体状态类的实例给出此环境对象的现有状态。 抽象状态角色(State):定义一个接口,
阅读全文
摘要:1、概念 解释器模式给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子,属于行为型模式。但其在实际的系统开发中使用的很少,因为他会引起效率、性能以及维护等问题 2、模式结构 抽象解释器(AbstractExpression):声明一个所有的具体表达式角色都需
阅读全文
摘要:引言 JNI是Java Native Interface(Java本地接口),是为了方便Java调用C和C++等本地代码所封装的一层接口。 NDK是Android提供的一个工具集合,通过NDK可以在Android中更加方便地沟通JNI来访问本地代码。 两者之间的关系:JNI是实现目的,NDK是在An
阅读全文
摘要:1、概念 备忘录模式在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便恢复到原先保存的状态,属于行为型模式。 2、模式结构 发起人角色(Originator):记录当前时刻的内部状态,负责定义哪些属于备份的状态,负责创建和恢复备忘录数据 备忘录角色(Memento):负责
阅读全文
摘要:1、概念 中介者模式用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,属于对象行为型模式一种。 2、模式结构 Mediator: 抽象中介者,定义一个接口,该接口用于与各同事对象之间进行通信 ConcreteMediator
阅读全文
摘要:1、概念 访问者模式封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作,属于行为型模式一种。 2、模式结构 Visitor(抽象访问者):抽象访问者为对象结构中每一个具体元素类ConcreteElement声明一个访问操作,从这个操作的名称或参
阅读全文
摘要:1、概念 迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示,属于行为模式的一种 2、模式结构 抽象迭代器(Iterator):此抽象角色定义出遍历元素所需的接口 具体迭代器(ConcreteIterator):此角色实现了Iterator接口,并保持迭代过程中的游标
阅读全文
摘要:引言 Android的线程池概念来自于Java的Executor,真正的线程池实现为ThreadPoolExecutor。在Android中,提供了4类不同的线程池,具体下面会说到。为什么使用线程池呢?而不是使用Thread创建线程呢?因为使用线程池有以下几个优点: 重用线程池的线程,避免因为线程的
阅读全文
摘要:1、引言 在Android中,几乎完全采用了Java的线程机制,由于Android的特性,主线程只处理和界面相关的事情,子线程处理耗时操作。Android中扮演线程角色的有Thread、AsyncTask、IntentService和HandlerThread。对于AsyncTask来说,底层用到了
阅读全文
摘要:1、概念 命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作,属于行为型模式的一种。 2、模式结构 Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute方法用来执行命令。 Concre
阅读全文
摘要:1、概念 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 2、模式结构 抽象类(AbstractClass): 定义一组基本方法供子类实现,定义并实现
阅读全文
摘要:1、概念 代理模式为其他对象提供一个代理以控制对这个对象的访问,属于结构性模式。从代码的角度来分,代理可以分为两种:一种是静态代理,另一种是动态代理。 静态代理就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。 动态代理类的源码是在程序运行期间根据反射等机制动态的生
阅读全文
摘要:概述 Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃,因为在ViewRootImpl.checkThread对UI操作做了验证,导致必须在主线程中访问UI,但Android在主线程中进行耗时的操作会导致ANR,为了解决子线程无法访问UI
阅读全文
摘要:1、概念 享元模式是运用共享技术有效地支持大量细粒度的对象,系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用,属于结构性模式。 2、模式结构 Flyweight: 抽象享元类,所有具体享元类的超类或者接口,通过这个接口,Flyweight可以接受并作用于外部专题 Con
阅读全文
摘要:1、概念 外观模式是外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,属于对象结构型模式。 2、模式结构 Facade(Controller): 外观角色,客户端通过操作外观角色从而达到控制子
阅读全文
摘要:1、概念 组合模式将对象组合成树形结构以表示“部分 整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性,属于结构性模式。 2、模式结构 Component:组合中的对象声明接口,实现所有类共有接口的默认行为,声明一个接口用于访问和管理Component子部件 Leaf:叶子对象,叶子结
阅读全文
摘要:1、概念 装饰模式动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类方式更为灵活,属于结构性模式一种。 2、模式结构 抽象组件角色(Component):定义一个对象接口,以规范准备接受附加责任的对象,即可以给这些对象动态地添加职责。 具体组件角色(ConcreteComponent)
阅读全文
摘要:1、概念 桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化,属于结构性模式的一种。 2、模式结构 Abstraction(抽象类):定义抽象接口,拥有一个Implementor类型的对象引用,它与 Implementor 之间具有关联关系 RefinedAbstraction(扩充抽象类
阅读全文
摘要:在Android 8之前,如果要发送自定义的静态广播,做好其他配置后,只需实例化一个Intent对象intent,然后将其作为参数传入sendBroadcast()方法中即可,例如 但在Android 8之后需要setComponent才能收到广播消息,其中,ComponentName接收两个参数,
阅读全文
摘要:在View的measure完成后,一般可以通过getMeasureWidth/getMeasureWidth方法可以正确的获取View的宽高,而在特殊情况下,可能需要多次measure才能确定最终的测量宽高,onMeasure无法获取正确的宽高,但可以在onLayout方法中获取测量宽高。 而在Ac
阅读全文

浙公网安备 33010602011771号