package com.eyugame.modle;
/**
* 装饰模式
* @author JYC506
*
*/
/*装饰者*/
public class Decorator implements IReceiver{
/*被装饰的对象*/
private IReceiver receiver;
public Decorator(IReceiver receiver) {
super();
this.receiver = receiver;
}
@Override
public void show() {
/*调用装饰方法*/
this.test();
/*调用被装饰的方法;*/
this.receiver.show();
/*调用装饰方法*/
this.test();
}
private void test(){
System.out.println("test方法执行:我是装饰作用");
}
public static void main(String[] args) {
/*创建被装饰者*/
IReceiver receiver1=new Receiver1();
/*创建装饰者*/
IReceiver receiver=new Decorator(receiver1);
/*执行被装饰的方法*/
receiver.show();
}
}
class Receiver1 implements IReceiver{
@Override
public void show() {
System.out.println("执行功能");
}
}
interface IReceiver{
void show();
}