新[dú]姿[hòu]势[gǎn]
一,创建型
创建对象的五种设计模式
单列模式
关键点: static instance synchronized,创建一个全局唯一的对象来重复使用。
原型模式
关键点:Cloneable。变量只保存了指向的地址,如果想复制对象要么实现Cloneable接口,要么new一个来赋值。
建造者模式
关键点:Builder,set(),this。在一个实体对象种创建内部类Builder,设置参数返回本身。如:Dialog的创建。
工厂模式
关键点:xxxFactory。简单工厂和抽象工厂,根据需要使用工厂创建出对象。如:BitmaFactory
二,结构性
适配器模式
关键点:Adapter,兼容。将一个类的接口转换成用户需要的类型。
装饰者模式
关键点:复用,修改。为了简洁将一个方法重写,保证原方法功能不变下加入其他方法。如:网络封装暴露为request(),在request()方法最上添加网络检查或加载对话框显示,在末尾加上网络加载对话框隐藏。
代理模式
关键点:接口,替身。使用一个新的对象控制原对象。如:bindService种Ibinder,使用Ibinder调用Service中的方法。
外观模式
关键点:低耦合,职责。使用一个对象来完成所有逻辑功能,用户需要的时候就用这个对象。如:MVP设计模式中的present,在activity中创建present并实现一个中间接口传给present,所有逻辑放在present中完成。
桥接模式
关键点:层级,多维,变化。一种可以多样化的结构来完成多样化的功能,每一个关键点由一个对象来控制。如:Graphic Pain Color Draw
组合模式
关键点:冗余,复用。一个初始对象中由其他成员组成。如:网络请求返回一个Json,Json中有多个数组和对象,我们将Json转为一个对象,这个对象中包含多个对象,每个对象可以单独成立。
亨元模式
关键点:复用,减少开销。使用已有的对象来设置某属性使其符合用户需要的,且重复使用减少对象的创建。
三,行为型
迭代模式
关键点:迭代。由某个条件重复使用一个方法的行为。
责任链模式
关键点:向下传递,分发。将一个事件经过很对对象修改其属性后逐一传给下一个。如:RxAndroid,touchVvent
观察者模式
关键点:观察者,和被观察者。被观察者被很多观察者监听,一旦观察者触发事件则所有观察者收到消息。如BroadCast
解释器模式
修炼中,不敢妄自揣度。。。
中介模式
修炼中,不敢妄自揣度。。。
访问者模式
修炼中,不敢妄自揣度。。。
状态模式
修炼中,不敢妄自揣度。。。
备忘录模式
修炼中,不敢妄自揣度。。。
命令模式
修炼中,不敢妄自揣度。。。
模板方法模式
修炼中,不敢妄自揣度。。。
策略模式
修炼中,不敢妄自揣度。。。