随笔分类 - Design Pattern
GOF
摘要:代理:控制对象访问 远程代理好比远程对象的本地代表 RMI java.lang.reflect Proxy & InvocationHandler
阅读全文
摘要:策略模式和状态模式是双胞胎 策略模式是围绕可以互换的算法来创建成功业务的,而状态 通过改变对象内部的状态来帮助对象控制自己的行为 定义: 允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类
阅读全文
摘要:迭代器模式: 提供一种方法顺序访问聚合对象内的各个元素,而又不暴露其内部的表示 实现Iterator接口的hasNext()以及next()方法 组合模式: 允许你将对象组合成树形结构来表现"整体/部分"层次结构,组合能让客户以一致的方式处理个别对象以及对象组合
阅读全文
摘要:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法接口的前提下,重新定义算法中的某些步骤。 钩子:一种被声明在抽象类中的方法,但只有空的或者默认的实现
阅读全文
摘要:适配器模式(Adapter pattern): 将一个类的接口,转换成客户期望的另一个接口。适配器让原本不兼容的类可以合作无间 对象适配器(对象组合的方式) 适配器实现了目标接口,并持有被适配者的实例 外观模式(Facade pattern): 提供了一个统一的接口,用来访问子系统中的一群接口。外观
阅读全文
摘要:命令模式:封装方法调用 通过封装方法调用,我们可以把运算块封装成形,所有调用该运算的对象不需要关心事情是如何进行的, 只要知道如何使用包装成形的方法来完成它就可以 将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式支持可撤销操作 客户负责创建一个命令对象,并设置接受者。 调
阅读全文
摘要:单件模式:用来创建独一无二的,只能有一个实例的对象的入场券 1.双重检查锁定。对象设置为volatile 2.内部类方式
阅读全文
摘要:封装创建对象的代码 工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类 抽象工厂模式:提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类 静态工厂方法 优点:不需要使用创建对象的方法来实例化对象。 缺点:不能通过继承改变创建对象
阅读全文
摘要:定义: 装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 特征: 1.装饰者和装饰的对象具有相同的超类型 2.用一个或者多个装饰者来装饰对象 3.装饰者可以在被装饰对象的方法前后添加自己的行为,来达到特定的目的 4.对象可以在任何时候被装饰,可以在运行时动态地
阅读全文
摘要:主题 + 订阅者 = 观察者模式 JDK中观察者模式:java.util.Observable java.util.Observer 缺点:Observable 是个类,不是接口,违反了面向接口编程而不是面向实现编程 部分方法(setChanged)protected,导致不能注入到其他对象中使用,
阅读全文
摘要:策略模式:定义了算法簇,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户
阅读全文

浙公网安备 33010602011771号