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


