装饰者模式是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使对象之间的关联关系取代类之间的继承关系。 模式动机 装饰者可以在不改变一个对象本身的基础上给对象增加额外的新行为,如一张照片,可以不改变照片本身,给她增加一个相框,使得它具有防潮功能,而且用户可以根据需要增加不同类 ...
分类:
其他好文 时间:
2020-05-01 15:09:04
阅读次数:
62
设计模式 1、创建型模式 单例模式 工厂模式 抽象工厂模式 创建者模式 原型模式 2、结构型模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 亨元模式 代理模式 3、行为型模式 访问者模式 模板模式 策略模式 状态模式 观察者模式 备忘录模式 中介者模式 迭代器模式 解释器模式 命令模式 责 ...
分类:
其他好文 时间:
2020-04-25 19:19:38
阅读次数:
115
装饰策略落在具体的代码实现效果上其实与代理模式的静态实现没有什么区别,都可以做到对原实现方法进行前置/后置/干预及方法替换,不必太纠结于此。两者的差别是代理模式实际上是对被代理对象生成了一个身份一样但实现不同的对象。比如小红爱穿裙子,生成的代理对象是小粉红,她爱穿长裙子。而装饰模式相当于小红爱穿裙子,而装饰模式给她的裙子上缀了只小蝴蝶。这是两者之间的差别装饰模式通过对顶层接口通过顶层接口进行实现后
分类:
编程语言 时间:
2020-04-06 13:47:58
阅读次数:
81
场景 “单一职责”模式 动机:某些情况下会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性,并且随着子类的增多,各种子类的组合会导致更多子类的膨胀 如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何 ...
分类:
其他好文 时间:
2020-04-04 20:37:03
阅读次数:
64
一、装饰模式的定义 装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。 二、装饰模式优缺点 装饰(Decorator)模式的主要优点有: 采用装饰模式扩展对象的功能比采用继承方式更加灵活。 可以设计出多个 ...
分类:
其他好文 时间:
2020-03-31 09:13:56
阅读次数:
94
"设计原则" "装饰模式" "动态代理" "命令模式" 设计原则 开闭原则、里氏替换原则、依赖倒转原则、接口隔离原则、最少知道原则、单一职责原则、合成复用原则 开闭原则 对修改关闭,对扩展开发。 里氏替换原则 子类可以扩展父类的功能,但是不能改变父类原有的功能。比如子类可以覆盖父类的抽象方法(抽象方 ...
分类:
其他好文 时间:
2020-03-30 00:29:18
阅读次数:
86
被装饰对象 调用 装饰对象的同一个接口方法,实现被装饰对象的方法//定义共用接口public interface ILog { public void log(String message);}public class UserLog implements ILog{ @Override publi... ...
分类:
其他好文 时间:
2020-03-25 19:41:39
阅读次数:
69
设计模式分为三种类型,共23种 1. 创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。 2. 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 3. 行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式 ...
分类:
其他好文 时间:
2020-03-13 18:45:27
阅读次数:
57
(请观看本人博文—— "《详解 字符流》" ) 字符缓冲流 和 字节缓冲流(高效字节流)运用了同样的思想 —— 缓冲区思想 其实这种思想涉及到了Java的一种设计模式 —— 装饰模式 (对于此知识点,在此篇博文中不做讲解,将在本人后续博文中进行讲解) [toc] 字符缓冲流: (高效字符转换流) 这 ...
分类:
其他好文 时间:
2020-03-05 10:43:08
阅读次数:
76