abstract class Component{
abstract public void printTicket();
}
class SalesTicket extends Component{
public void printTicket() {
System.out.println("打印出salesTicket的内容");
}
}
abstract class TicketDecorator extends Component{
private Component myTrailer;
public TicketDecorator(Component myComponent){
myTrailer=myComponent;
}
public void callTrailer(){
if(myTrailer!=null)
myTrailer.printTicket();
}
}
class Header extends TicketDecorator{
public Header(Component myComponent){
super(myComponent);
}
public void printTicket(){
System.out.println("打印salesTicket的头信息");
super.callTrailer();
}
}
class Footer extends TicketDecorator{
public Footer(Component myComponent){
super(myComponent);
}
public void printTicket(){
super.callTrailer();
System.out.println("打印salesTicket的页脚信息");
}
}
public class Client {
public static void main(String[] args) {
System.out.println("====================================");
new Header(new Footer(new SalesTicket())).printTicket();
System.out.println("====================================");
new Footer(new Header(new SalesTicket())).printTicket();
System.out.println("====================================");
}
}
输出结果如下:
====================================
打印salesTicket的头信息
打印出salesTicket的内容
打印salesTicket的页脚信息
====================================
打印salesTicket的头信息
打印出salesTicket的内容
打印salesTicket的页脚信息
====================================
分享到:
相关推荐
【Decorator模式】是一种设计模式,它允许在运行时动态地给对象添加新的责任或功能,而不必通过子类化的方式。在上述的奇幻RPG游戏中,Decorator模式被用来实现武器的锻造过程,尤其是武器镶嵌宝石的功能。这个过程...
Decorator模式是一种设计模式,它允许在运行时向对象添加新的行为或责任,而无需修改对象的源代码。这种模式在Java中尤其有用,因为它提供了在不改变类结构的情况下扩展类的功能的方法。以下是对Decorator模式的详细...
Decorator模式是一种设计模式,它允许在运行时向对象添加新的行为或责任,而无需修改对象的源代码。这种模式在Java和其他面向对象编程语言中非常常见,尤其在需要灵活扩展功能而不影响原有类结构的情况下。 在给定...
### Java类库中Decorator模式的应用研究 #### 一、引言 随着软件开发技术的不断发展,设计模式在软件工程中的重要性日益凸显。设计模式能够帮助开发者构建出具有良好结构、高度可扩展性和易于维护的软件系统。其中...
Decorator模式是一种设计模式,主要用来在不改变原有对象的基础上,动态地给对象添加新的行为或属性,从而扩展其功能。这种模式在Java等面向对象语言中广泛应用,它提供了一种比继承更加灵活的扩展机制。 在Java中...
Decorator模式是设计模式中的一种结构型模式,它允许在运行时动态地给对象添加新的行为或职责,而不会破坏封装性。这种模式的核心思想是通过装饰类包装原对象,实现对原对象功能的扩展,同时保持与原接口的一致性。 ...
DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及Java EE 5.0、Java IO 包中的Decorator模式等。
Java设计模式中的装饰模式(Decorator模式)是一种结构型设计模式,它允许在运行时向对象添加新的行为或责任,而不必通过子类化的方式。这种模式对于系统扩展性和灵活性至关重要,因为它避免了创建大量子类来实现...
提供一种修改类的行为,而避免创建众多的派生类的途径。
Decorator模式的核心在于动态地将责任附加到对象上,通过封装来增加新的行为或职责,使得装饰者和组件(被装饰对象)具有相同的接口,这样就可以透明地对对象进行装饰。 在Java中,Decorator模式通常通过继承和组合...
装饰器模式(Decorator)是一种设计模式,它允许在运行时向对象添加新的行为或责任,而无需修改对象的源代码。这种模式属于结构型模式,是面向对象设计中的一种非常实用的技术。 装饰器模式的核心思想是通过将一个...
猴王学艺的过程,就如同我们在编程中逐步增加对象的能力,通过不同的装饰,猴王学会了七十二般变化,这正是Decorator模式的体现——对象在不改变自身的情况下,通过装饰来获得新能力。 在配套代码中,我们可以看到...
设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或更多)设计场景和解决策略(实际上这也是很重要的一笔财富),实际接受的是一种思想的熏陶和洗礼,等这种思想...
Java装饰模式,也被称为Decorator模式,是一种设计模式,它允许在运行时向对象添加新的行为或职责,而不必通过继承的方式来扩展类。这种模式提供了一种比使用子类更加灵活的方式来扩展对象的功能。 装饰模式的核心...
Decorator模式的核心思想是装饰者类与被装饰类有相同的接口,它包装了一个对象,并且可以增加或修改该对象的行为。这种模式避免了对原有类进行大量修改,保持了代码的开放性和封闭性。在Java IO系统中,所有的流类都...
本文研究的主要是python实现Decorator模式,具体介绍如下。 一般来说,装饰器是一个函数,接受一个函数(或者类)作为参数,返回值也是也是一个函数(或者类)。首先来看一个简单的例子: # -*- coding: utf-8 -*- ...