设计模式一句话与实战应用总结-创新互联
访问者模式
一句话
实现了访问者和被访问者分离,灵活且扩展性强;但违背了迪米特和依赖倒转原则,被访问元素若修改影响较大。
专注于为中小企业提供成都做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业昌邑免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。细节
双分派技术(双动态绑定)
访问者的角色由它的实现对象确定
被访问的角色也由它的具体对象决定
应用场景
源码:注解的解释器
员工给不同管理者查看的报表
病人、抓药人、医生、定价者面对药店不同药物所做的想法或操作
中介者模式
一句话
加入中介类来改变对象关系,使网状结构变为星型结构,多对多变为一对多。应用于对象关系较为复杂的情况。
应用场景
源码:binder driver和service manager;keyGuardViewMediator;
主板和电源、cpu等关系
总经理和诸多部门
Activity中view、model、逻辑交互
外观模式
一句话
和中介者类似,加入中间类形成统一编程接口,区别在于不是为了改变对象关系,而是把多个功能封装为api以供调用。
应用场景
源码:Context
插件化动态加载(ActivityProxy)
sdk封装
框架封装(OKHttp,Piccaso)
组合模式
一句话
通过多层继承和实现相同方法组合模型,用于控制树形结构。但通常需要进行类型判断,增加代码复杂度。
细节
安全的组合模式:由子组合完成抽象方法(ViewGroup),外界使用需要判断view或viewGroup,使用不方便。
透明组合模式:根节点、枝干节点、叶节点都有相同的抽象方法,对外界透明,使用方便不安全。
应用场景
源码:ViewGroup View
文件夹和文件
适配器模式
一句话
通过适配接口进行兼容处理,通常后期使用,避免过度适配;灵活使用可以增加扩展和复用性(系统adapter)。
细节
对象适配器:适配目标为接口,适配器中传入被适配对象,通过适配目标接口进行转换处理。
类适配器:适配目标为抽象父类,通过扩展子类实现相同方法实现方法兼容。
应用场景
源码:adapter
电源转换
装饰者模式
一句话
利用装饰者类重复传入装饰对象,可以随意增减装饰方法。替代继承方式解决类膨胀问题,扩展性极强。
应用场景
源码:ContextWrapper
餐馆混搭
奶茶混搭
状态模式
一句话
抽象状态对象使得行为在不同状态下都能产生变化。
应用场景
源码:wifi管理
登录状态
家电控制状态
下载状态管理
模板模式
一句话
定义算法框架,使子类不改变结构的情况下改变行为。
应用场景
源码:AsynTask、Activity生命周期
adapter-holder
draw流程
Activity Init三板斧
备忘录模式
一句话
在该对象之外保存该对象的内部状态
应用场景
源码:saveInstanceState,事务回滚
游戏保存读取
记事本状态恢复
享元模式
一句话
使用共享对象(对象池)实现对象的复用,需要分离内部状态和外部状态,可以大大节约内存。
应用场景
源码:handleMessage消息池复用;线程池
建立tcp消息池
车票系统车次信息池
命令模式
一句话
封装命令对象传递请求给调用者,分离请求者和接收者,会增加大量的类,但是职责分明,高内聚,非常灵活容易扩展,可作为回调的替代。
应用场景
源码:Packagemanager的安装、移动、测量命令(内部类HandlerParams子类实现);
画笔应用
记事本应用
解释模式
一句话
使用不同解释器对特定语言进行解析,对简单语法适应较好,易于扩展,无法对应复杂文法(如有顺序的四则运算)。
应用场景
源码:清单文件解析parseActivity
简单计算
责任链模式
一句话
发送请求给一个对象链条,该链条每个对象和它的下一对象绑定,实现发起者与最终接手者的解耦
应用场景
源码:事件分发
广播的有序机制改进为责任链广播
公司各种权限的逐级申请
继承制度
设计模式异同对比
装饰者VS代理模式
装饰模式用作功能扩展,可以给相同对象不断增加新的特征;代理模式则偏向行为控制,在方法执行前后做处理。
状态模式vs策略模式
策略模式封装可变更的算法解耦;状态模式通过改变状态控制行为。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
新闻标题:设计模式一句话与实战应用总结-创新互联
网页链接:http://ybzwz.com/article/dihgps.html