设计模式一句话与实战应用总结-创新互联

访问者模式
一句话

实现了访问者和被访问者分离,灵活且扩展性强;但违背了迪米特和依赖倒转原则,被访问元素若修改影响较大。

专注于为中小企业提供成都做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业昌邑免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
细节

双分派技术(双动态绑定)
访问者的角色由它的实现对象确定
被访问的角色也由它的具体对象决定

应用场景

源码:注解的解释器
员工给不同管理者查看的报表
病人、抓药人、医生、定价者面对药店不同药物所做的想法或操作

中介者模式
一句话

加入中介类来改变对象关系,使网状结构变为星型结构,多对多变为一对多。应用于对象关系较为复杂的情况。

应用场景

源码: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