`

简单的装饰模式

 
阅读更多
package decorate;

public interface IByDecorate {

	void sayHello();

}
 
package decorate;

public class ByDecorateImp implements IByDecorate {

	@Override
	public void sayHello() {
		// TODO Auto-generated method stub
		System.out.println("==========="+this);

	}

}

 

  它们的着重点一个在于“增加”职责,    代理模式 在于“控制”访问(不让对真实对象进行访问)。这是它们最本质的区别

 

package decorate;

public class abstractDecorate implements IByDecorate {

	private IByDecorate bydecorate;

	public abstractDecorate(IByDecorate iByDecorate) {
		this.bydecorate = iByDecorate;

	}

	@Override
	public void sayHello() {
		// TODO Auto-generated method stub
		bydecorate.sayHello();
	}

}
 
package decorate;

public class abstractDecorateImp extends abstractDecorate {

	public abstractDecorateImp(IByDecorate iByDecorate) {
		super(iByDecorate);
		// TODO Auto-generated constructor stub
	}

	public void sayHello() {
		sayHello1();
		super.sayHello();
		sayHello2();
	}

	public void sayHello1() {
		System.out.println("hello1");
	}

	public void sayHello2() {
		System.out.println("hello2");
	}

	
	public static void main(String[] argv) {
		IByDecorate decorate = new abstractDecorateImp(new ByDecorateImp());
		decorate.sayHello();

	}

}

分享到:
评论

相关推荐

    最简单的装饰模式

    简单装饰模式实现 假设我们有一个`Coffee`类,代表基本的咖啡,有价格和口味。现在我们想要给咖啡添加糖分和牛奶,而不改变`Coffee`类本身。我们可以创建两个装饰者类,`SugarDecorator`和`MilkDecorator`,它们都...

    装饰模式简单例子

    装饰模式是一种结构型设计模式,它允许我们向对象添加新的行为或责任,而无需修改对象的源代码。这种模式在不违背开闭原则(对扩展开放,对修改关闭)的前提下,提供了灵活的扩展机制。在《Head First设计模式》一书...

    设计模式+简单工厂模式+桥接模式+装饰者模式实现画板绘图功能

    能实现基本图形的绘制功能,包括实现绘制直线、三角形和圆形,并有装饰;修改绘图笔颜色。 1.3 画图高级要求 实现图形的操作(如选取、移动、放大、缩小、删除、改变颜色、修变线形等)和持久化(利用文件或利用...

    装饰模式——装饰模式.doc

    以下是一个简单的装饰模式示例: ```java // Component接口 public interface Operation { double calculate(); } // ConcreteComponent(具体组件) public class ConcreteComponent implements Operation { @...

    C#设计模式之Decorator 装饰模式

    装饰模式(Decorator Pattern)是设计模式中的一种结构型模式,它在不改变原有对象的基础上,通过添加额外的职责来扩展对象的功能。在C#中,装饰模式尤其适用于那些需要动态地增加或减少对象功能的情况,避免了使用...

    装饰器模式的简单demo

    装饰器模式是一种结构型设计模式,它允许在运行时向对象添加新的行为或职责,而无需修改原有类的代码。这种模式通过创建包装对象(即装饰器)来包裹原对象,装饰器对象拥有与原对象相同的接口,因此可以在不改变...

    设计模式-装饰器模式

    装饰器模式让添加新功能变得简单,只需创建新的装饰器类,而无需修改`Coffee`类。 总结来说,装饰器模式在iOS开发中是一种强大的工具,它可以让我们在不修改原始代码的情况下,为对象添加新的功能,提高了代码的可...

    C# 装饰模式实例

    装饰模式是一种结构型设计模式,它允许我们向现有的对象添加新的功能,同时又不破坏其原有的结构。在C#中,装饰模式常用于在运行时动态地改变对象的行为,而无需修改原始类的代码。这种模式的核心在于装饰者类与被...

    装饰模式生成密码实例

    装饰模式是一种设计模式,它允许在运行时向对象添加新的行为或责任,而无需修改对象的源代码。这种模式在Java等面向对象编程语言中非常常见,因为它提供了灵活性,使得扩展对象的功能变得容易且优雅。在这个"装饰...

    设计模式专题之(七)装饰模式---设计模式装饰模式示例代码(python--c++)

    以下是一个简单的装饰器例子: ```python def my_decorator(func): def wrapper(): print("Before the function call.") func() print("After the function call.") return wrapper @my_decorator def say_...

    c# 一个简单的 装饰模式的例子

    下面将详细探讨这个简单的C#装饰模式例子及其相关知识点。 首先,装饰模式的核心在于它遵循“开闭原则”,即对扩展开放,对修改关闭。这意味着我们可以在不改变已有类的基础上,通过增加新类来扩展功能。在C#中,这...

    装饰者模式Demo

    在Java编程语言中,装饰者模式通常使用继承来实现,但与简单的子类化不同,装饰者可以独立于被装饰的对象,即它们可以分别独立地扩展功能。这使得系统更加灵活,可以添加、移除或更改对象的功能,而不必修改原始代码...

    c++设计模式-结构型模式-装饰器模式

    c++设计模式-结构型模式-装饰器模式;QT工程;c++简单源码; 装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。

    装饰、外观模式实例代码

    其次,外观模式(Facade Pattern)是一种结构设计模式,它为复杂的子系统提供一个简单的接口,使得客户端可以更容易地与其交互。外观模式将多个复杂的组件组合在一起,为外部提供一个统一的访问入口,隐藏了内部的...

    设计模式简单实现

    文件“设计模式简单实现示例”可能包含了以上提到的几种模式的简单实现代码,供学习和参考。通过阅读和理解这些示例,你可以更深入地了解如何在实际项目中应用这些设计模式,提升代码的可维护性和可扩展性。在实践中...

    《Java设计模式》电子课件01至21章(程细柱PDF)

    内容包括统一建模语言基础知识、面向对象设计原则、设计模式概述、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、...

    JAVA设计模式学习12——装饰器模式

    装饰者可以添加新的行为或增强已有行为,而不仅仅是简单地包裹原对象。最后,我们有具体的装饰类(ConcreteDecorator),它们是装饰者的一个实例,负责提供具体的增强功能。 在Java中,`InputStream`和其相关的装饰...

    C#设计模式——装饰模式应用实例

    装饰模式是一种结构型设计模式,它允许在运行时动态地给对象添加新的行为或属性,而不必修改原有类的代码。在C#中,装饰模式常用于扩展对象的功能,同时保持对象接口的一致性。本实例是关于如何在开发图形界面构件库...

    设计模式之装饰模式

    装饰模式是一种结构型设计模式,它允许在运行时给对象添加新的行为或责任,而无需修改对象的源代码。这种模式通过将附加功能封装到一个称为装饰者的对象中来实现,使得原有的对象类保持不变,扩展了其功能。在软件...

    C#采用桥接装饰模式工厂模式单实例模式实现绘图

    - **可扩展性**:工厂模式使得添加新的图形类型变得简单,而单例模式保证了全局资源的有效管理。 - **可维护性**:每个模式都负责特定的功能,使得代码结构清晰,易于理解和调试。 总的来说,这个C#的绘图软件项目...

Global site tag (gtag.js) - Google Analytics