1.单体模式:将功能相关的变量或函数封装本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。在一个静态对象中,相当于命名空间,可以减【本文受版权保护】【转载请注明来源】少全局变量的数量,主要是用来处理变量的问本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。题
著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。
2.工厂模式:将一个功能封装成一个静态类原创内容,盗版必究。【未经授权禁止转载】,无需实例化这个类来调用,而是通过类的一【访问 www.tangshuang.net 获取更多精彩内容】【转载请注明来源】个方法初始化,或者这个类主要用来派生子类【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。,主要用来处理某一个功能的不同操作
【关注微信公众号:wwwtangshua本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】ngnet】原创内容,盗版必究。【转载请注明来源】
3.桥梁模式:在撰写一个程序过程中按照接【原创不易,请尊重版权】【转载请注明来源】口直接写某个功能的调用,传入对应的配置参未经授权,禁止复制转载。【原创内容,转载请注明出处】数,此时不用考虑该功能的具体实现,具体实未经授权,禁止复制转载。【版权所有,侵权必究】现可以写在其他模块或函数中,但是其提供的【转载请注明来源】【关注微信公众号:wwwtangshuangnet】接口应该符合一定的规范,在这个规范指引下转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】,过程代码和功能代码分开,通过接口作为桥【本文受版权保护】【转载请注明来源】梁无缝对接
未经授权,禁止复制转载。【版权所有】唐霜 www.tangshu【版权所有,侵权必究】【原创内容,转载请注明出处】ang.net【转载请注明来源】
4.装饰者模式:在不改变原始对象的前提下原创内容,盗版必究。【作者:唐霜】,扩展这个对象。在扩展方法中可能调用原始本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。对象已有的属性,但不能在原始方法中添加新【原创不易,请尊重版权】【作者:唐霜】属性来满足扩展的方法
【版权所有,侵权必究】【本文受版权保护】
5.组合模式:将一堆相似的对象组合在一起【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。成为一个大的对象,由这个大对象提供接口,本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】通过这些接口再掉内部的对象的接口来实现对著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。应功能
【作者:唐霜】【作者:唐霜】【版权所有】唐霜 www.tangshu【原创内容,转载请注明出处】【本文首发于唐霜的博客】ang.net
6.门面模式:将复杂的逻辑封装起来,只暴【作者:唐霜】【版权所有,侵权必究】露一个入口给使用者,主要是为了解决差异(【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。兼容性)问题。比如一些内部处理兼容性的方【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。法,它们的内部肯定有很多判断,但是在外部【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net调用的时候,根本不考虑这些兼容性问题,而【本文受版权保护】本文版权归作者所有,未经授权不得转载。是根据功能实现的需要来调用。这一点有点像【本文首发于唐霜的博客】原创内容,盗版必究。“桥梁模式”,但是桥梁模式更加注重的是功【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。能和接口,而门面模式更加注重逻辑和暴露一【作者:唐霜】【原创不易,请尊重版权】个入口。
本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.n【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.netet 获取更多精彩内容】【访问 www.tangshuang.n【本文受版权保护】原创内容,盗版必究。et 获取更多精彩内容】【本文受版权保护】
7.配置器模式:将一个类的接口转换为用户原创内容,盗版必究。【本文首发于唐霜的博客】希望的另外一个接口。主要解决类的接口兼容【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。性问题。这个用于转换的函数或方法被称为适【作者:唐霜】【原创内容,转载请注明出处】配器。从结果来看,它有点像门面模式,都是【未经授权禁止转载】未经授权,禁止复制转载。在解决兼容性问题。
转载请注明出处:www.tangshua本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】ng.net【版权所有,侵权必究】
8.享元模式:把功能一拆再拆,拆到最细,转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。再通过接口、工厂、存储器等组装起来。主要转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】解决的是小粒度相同功能的复用。不过一般情【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】况下,这会使程序的可读性降低,但性能会有【版权所有,侵权必究】【本文受版权保护】所提高。
【版权所有,侵权必究】【版权所有,侵权必究】
9.代理模式:通过创建一个方法来控制是否【作者:唐霜】【未经授权禁止转载】执行某些操作。特别是在实例化的时候,如果转载请注明出处:www.tangshuang.net【作者:唐霜】通过代理模式,就可以在特定条件下才实例化【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net类,否则就返回一些提示信息。这样可以节省本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】内存。
【版权所有,侵权必究】【本文受版权保护】【本文受版权保护】【版权所有】唐霜 www.tangshu【转载请注明来源】【原创内容,转载请注明出处】ang.net
10.观察者模式:定义对象间的一对多依赖【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.net关系,当对象的状态发生变化时,依赖它的对转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。象也会跟着更新。事件监听就是一种内置的观著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net察者。
原创内容,盗版必究。【作者:唐霜】【转载请注明来源】【访问 www.tangshuang.n【作者:唐霜】【本文首发于唐霜的博客】et 获取更多精彩内容】
11.命令模式:将请求封装成一个对象,当【原创不易,请尊重版权】【本文首发于唐霜的博客】要执行某些操作时,通过调用这个对象的“执【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。行操作”,传入“要干什么”“参数”,在其【未经授权禁止转载】【原创不易,请尊重版权】内部来处理具体调用那个类的什么方法。它跟未经授权,禁止复制转载。【本文首发于唐霜的博客】门面模式也有点像,但它更强调的是封装出来【原创不易,请尊重版权】【本文首发于唐霜的博客】的这个对象的形式是命令的形式。
【本文受版权保护】本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshua【作者:唐霜】【未经授权禁止转载】ng.net
12.职责链模式:将一堆处理请求的对象处【原创内容,转载请注明出处】原创内容,盗版必究。理成一个链条,当一个请求发生时,传入链条【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】的第一个对象,链条中的对象对传进的请求有【版权所有】唐霜 www.tangshuang.net【本文受版权保护】两个选择,要么处理它,要么不处理它,要么【转载请注明来源】未经授权,禁止复制转载。往链条中的下一个对象传,要么结束处理返回【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net结果。
【原创内容,转载请注明出处】【访问 www.tangshuang.n【版权所有,侵权必究】原创内容,盗版必究。et 获取更多精彩内容】
【本文受版权保护】【访问 www.tangshuang.n【本文受版权保护】【关注微信公众号:wwwtangshuangnet】et 获取更多精彩内容】【版权所有,侵权必究】转载请注明出处:www.tangshua【关注微信公众号:wwwtangshuangnet】【转载请注明来源】ng.net
参考文献:
本文版权归作者所有,未经授权不得转载。【本文受版权保护】【本文受版权保护】
本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。
2017-02-15 3182 设计模式


