java设计模式-装饰器模式

标签: 设计模式 java
4人阅读 评论(0) 收藏 举报
分类:
package com.hcmony.decorator;

/**
 * <h3>Shenjue.java基本描述</h3>
 * <p></p>
 *
 * @author hcmony
 * @since V1.0.0, 2018/04/03 20:25
 */
public class Decorator implements DecoratorInterface{
	@Override
	public void add() {
		System.out.println("这是Decorator的add 方法");
	}
}

package com.hcmony.decorator;

/**
 * <h3>Shenjue.java基本描述</h3>
 * <p></p>
 *
 * @author hcmony
 * @since V1.0.0, 2018/04/08 21:13
 */
public interface DecoratorInterface {
	public void add();
}
package com.hcmony.decorator;

/**
 * <h3>
 *    装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。
 *    这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。
 * </h3>
 * <p>
 *     	优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。
 		缺点:多层装饰比较复杂。
 		使用场景: 1、扩展一个类的功能。 2、动态增加功能,动态撤销。
 		注意事项:可代替继承。
  </p>
 *
 * @author hcmony
 * @since V1.0.0, 2018/04/08 21:14
 */
public class DecoratorTest implements DecoratorInterface {
	private Decorator decorator;

	public DecoratorTest (Decorator decorator){
		super();
		this.decorator=decorator;
	}
	@Override
	public void add() {
		decorator.add();
		System.out.println("额外的新加方法");
	}

	public static void main(String[] args) {
		DecoratorTest test = new DecoratorTest(new Decorator());
		test.add();
	}
}



查看评论

【Java设计模式】- 装饰器模式

概述     装饰器模式:可以动态的为运行时的类添加行为。相比继承而言,继承是直接对某个类的行为进行扩展而装饰器模式是对某个对象进行扩展。     原理:增加一个修饰类去实现被修饰类相同的接口,同...
  • LightOfMiracle
  • LightOfMiracle
  • 2017-06-26 10:32:07
  • 330

大话设计模式之装饰器模式

装饰器模式,顾名思义就是在一个原有的类的上增加额外的功能,前提是不能修改类的代码。其实为一个类增加功能,可以用继承来实现,但是这样会使得类的数量层爆炸式增长,每增加一个功能,都会通过继承生成一个新类。...
  • u011811966
  • u011811966
  • 2016-09-27 09:49:29
  • 412

《java与设计模式》之装饰模式详解&Java IO中的装饰器模式

1 概述 在一个项目中,你会有非常多的因素考虑不到,特别是业务的变更,不时的冒出一个需求是很正常的情况。有三个继承关系的类:Father、Son、GrandSon,我们要在Son类上增强一些功能怎么办...
  • chs0113
  • chs0113
  • 2016-05-06 19:42:19
  • 9167

[设计模式]-装饰器模式(Decorator)

定义: 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。 对象结构型模式...
  • qust_2011
  • qust_2011
  • 2016-11-30 19:15:04
  • 783

Java设计模式——装饰器模式(Decorator)

孙悟空有七十二般变化,他的每一种变化都给他带来一种附加本领。而不管孙悟空怎么变化在二郎神眼里,他永远是那只猢狲。 装饰器模式以对客户透明的方式动态的给一个对象附加上更多的责任。 在孙悟空的例子里,...
  • fuyuwei2015
  • fuyuwei2015
  • 2015-05-18 21:29:05
  • 790

JAVA开发的23种设计模式之 —  装饰器模式 && 代理器模式

装饰器模式 概述 : 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器模式相比生成子类更加灵活维基百科解释 : 通过使用修饰模式,可以在运行时扩充一个类的功能.原理是 : 增加一个修饰类包...
  • yeguxin
  • yeguxin
  • 2017-08-17 18:20:11
  • 343

JAVA IO之装饰器模式(Head first 设计模式之装饰器模式)

InputStream是IO中装饰器模式的顶层,现在我们讨论一下装饰器模式。顾名思义,动态的将责任附加到对象上,如要扩展功能,装饰者提供了比继承更加有弹性的方案。 装饰器模式:首先,装饰者和被装饰者...
  • wangzhenfei444
  • wangzhenfei444
  • 2016-06-20 16:01:03
  • 1088

读书笔记 HeadFirst设计模式之装饰器(Decorator)模式

概念 装饰器(Decrator)模式属于设计模式中的结构模式,通过装饰里动态的给一些对象增加职责。装饰器模式通常也会被称作包装(Wrapper)模式。装饰器模式包括一下四种角色:   Compone...
  • u013278940
  • u013278940
  • 2016-04-18 16:09:20
  • 375

设计模式 —— 装饰器模式(Decorator Pattern)

装饰器模式(Decorator Pattern)概念 装饰器模式 允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,以达到特定的目的。...
  • wwh578867817
  • wwh578867817
  • 2016-05-23 11:46:16
  • 2014

设计模式之装饰器模式(Decorator)

概述装饰模式是对客户端以透明的方式扩展对象的功能,是继承关系的一个替代方案。也就是说,客户端并不会觉得对象在装饰前和装饰后有什么不同,装饰模式可以在不用创造更多子类的情况下,将对象的功能加以扩展,装饰...
  • yuminfeng728
  • yuminfeng728
  • 2016-06-27 08:58:12
  • 466
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 6万+
    积分: 1301
    排名: 3万+
    博客专栏
    最新评论