设计模式速记(Java版)

2019-3-29 liuyingcong 安卓开发

创建型:
        单例模式:确保一个类只有一个实例。懒汉式、饿汉式。
        工厂方法模式:用产品的泛型作为工厂方法的参数,方法内用反射创建产品对象。
        抽象工厂模式:生产N类产品,每类N种。每个工厂对应一类,每个产品对应一个方法,通过new返回对象。
        例如:工厂A生产一级铅笔和橡皮,工厂B生产二级铅笔和橡皮。
        建造者(builder)模式:为对象选装不同的配件。
        例如:okhttp的创建过程。

        原型模式:克隆(clone)现有对象。

结构型:
        适配器(adapter)模式:A想调用B、C功能相同但名字不同的方法,适配器转换使其相同。
        例如:电源适配器,把不同的输入电压转换成相同的输出电压。
        装饰模式:一层层的给原始类增加功能。
        例如:java文件流。
        桥接模式:颜色类树、形状类树各自演化,在顶层,形状基类调用了颜色接口,就好像一座桥。
        例如:用不同颜色画不同形状。
        组合模式:文件树,中间文件夹可以包含文件夹或文件。
        例如:文件夹系统。
        外观模式:一个类封装一组类的方法,使用者只要调用这一个类即可。
        例如:秘书封装了酒店的订房方法、机场的订票方法、死机的开车方法,老板只给秘书命令
        代理模式:代理类A与被代理类B主方法相同,A在主方法中夹带私货。
        例如:增加打印日志的功能。
        享元模式:池技术的实现方式。享元工厂通过关键字查询享元对象,没有就创建并保存。
        例如:线程池。
行为型:
        责任链模式:如果本对象处理不了就传递给下一个。
        例如:财务审批中的超过多少元就交给下一个人处理。
        命令模式:回调。回调函数的参数是对象,叫作命令。
        例如:设置点击事件,参数中的action就是命令。
        解释器模式:递归地对文法进行解释。
        例如:编译器。
        迭代器模式:迭代接口有next()和hasnest()方法,遍历一组对象中的各个元素。
        例如:集合Collection。

        访问者模式:对迭代器模式的扩充,可以遍历不同的对象,执行不同的操作。

        中介者模式:业务类之间的信息和动作通过中介者传播,中介者和业务类互相持有引用。
        例如:婚姻介绍。
        备忘录模式:将一个对象备份,以后可以恢复到原先保存的状态。
        例如:数据库事务的回滚。

        观察者模式:一对多,一方改变,多方收到通知。

        策略模式:如排序,每种排序算法封装成一个对象,使用时可以切换。多方案切换。

        状态模式:想执行行为A时,先切换到状态A,让状态A执行行为A。
        模板方法模式:定义一个算法骨架,将一些步骤延迟到子类中,使得子类不改变一个算法的结构即可重新定义算法的某些步骤。

网站备案号:京ICP备11043289号-1 北京市公安局网络备案 海1101084571
版权所有 北京育灵童科技发展有限公司 Copyright © 2002-2024 www.elight.cn, All Rights Reserved