Java设计模式——装饰者模式

13 篇文章 0 订阅
11 篇文章 0 订阅

今天和大家聊一聊装饰者设计模式,这个模式会经常在我们的代码中出现,所以我们分为两部分去讲,第一部分和大家聊一聊什么是装饰者模式,以及我们应用的场景。

装饰者模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰者模式比生成子类更为灵活。

我们先给大家展示一下装饰者模式的结构图:



Compontent是定义了一个对象接口,可以给这些对象动态的添加职责。ConcreteConponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator是装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的,至于ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能。

给大家看一下具体的代码实现:


/**
 * Component
 */
public abstract class Component {
public abstract void Operation();//定义一个对象接口
}
  
/**
 * 具体实现类
 *
 */
class ConcreteComponent extends Component{
  
@Override
public void Operation() {
System.out.print("定义一个具体的操作对象");
}
}
  
/**
 * 装饰抽象类
 *
 */
abstract class Decorator extends Component{
protected Component component;
public void SetComponent(Component component){
this.component = component;
}
@Override
public void Operation() {
//重写Operation,执行Component的Operation方法
if(component!=null){
component.Operation();
}
}
}
  
/**
 * 具体的装饰对象类
 */
class ConcreteDecorator extends Decorator{
private String aaa = "本类独有的属性";
@Override
public void Operation() {
super.Operation();//先运行父类的Operation方法
System.out.print("aaa");
}
}

Good luck!

Write by Jimmy.li






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值