设计模式
文章平均质量分 94
Androider_Zxg
安卓应用开发
展开
-
设计模式准则
本文作为设计模式的开篇,记录设计模式的准则、共有单一职责原则、开闭原则、里氏替换原则、依赖倒转原则、接口隔离原则、合成复用原则、迪米特原则七个原则。单一职责原则一个类只负责一个功能领域的职责;换句话说,就一个类而言,应该只有一个引起它变化的原因。职责扩散是单一职责的挑战,应在其扩散到不可控制之前进行代码重构。只有在逻辑足够简单或者方法数量足够少,才能够违反单一职责单一职责的优点主要是:降低...原创 2018-06-03 17:20:42 · 193 阅读 · 0 评论 -
命令模式
定义 将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。理解将一个请求(调用)封装为一个对象,从而可用不同的请求对客户进行参数化,将“发出请求的对象”和“接收和执行请求的对象”分离开。它的精髓在于封装了具体的调用。 我们从定义中了解到,一个命令对象通过在特定命令接受者上绑...原创 2018-06-03 17:31:47 · 866 阅读 · 0 评论 -
装饰者模式
定义 动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。理解 使用对象组合的方式,做到运行时装饰类。这样可以在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。动态的将责任附加到对象上,想要扩展功能,装饰者提供有别于继承的另一种选择。我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可搭配新的...原创 2018-06-03 17:39:21 · 125 阅读 · 0 评论 -
Builder模式
定义建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。理解一个复杂对象的表示应该与它的构建过程分离,使得同样的构造过程有着不同的表示。一些概念产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做产品...原创 2018-06-04 22:22:20 · 121 阅读 · 0 评论 -
状态模式及java实现
定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。应用场景 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 2.一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。 通常,有...原创 2018-06-13 10:17:35 · 1250 阅读 · 0 评论 -
代理模式与java动态代理
定义 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。有点类似于装饰者模式。但是与装饰者模式的区别是代理模式最终不一定调用目标对象的目标方法。但装饰者一定会。图示:理解: 通俗一点说,就是代理对象持有目标对象的引用,并对外提供所有目标对象的业务方法,在该方...原创 2018-06-06 11:11:43 · 195 阅读 · 0 评论 -
单例模式
定义 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。理解 在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以...原创 2018-06-07 15:25:09 · 116 阅读 · 0 评论 -
异步任务串行解决方案
问题描述在业务开发时,有时不仅仅是拉取一个数据接口展示列表这么简单。举一个购买场景:第一步调用网络接口登录第二步调用网络接口购买第三步查询购买结果第四步调用DBApi将购买结果写入本地第五步向外回调结果这里所有的操作都是异步的,再举一个聊天业务场景的例子。当收到有新消息通知。需要拉取获取新消息的网络接口以获得新消息。有这样几步:拉取本地DBApi查询本地保持的最大消息Id,以...原创 2019-03-21 10:24:25 · 2271 阅读 · 1 评论