Java的设计模式之装饰者模式

装饰者模式是允许向一个现有的对象添加新的功能,但是不改变其结构。也就是给一个对象做一个在外的包装。

  装饰者模式的创建思路:

1.定义一个接口,该接口中的方法是必须要实现的方法;
2.设计一个或者多个的装饰者,每个都继承接口,并且将接口作为构造函数的参数传入;

3.使用一个主体类,继承接口并且实现确切的功能;
4.在调用的时候最先调用主体,然后将主体以参数形式传递给装饰者。由最后一个装饰者调用接口中的方法;

具体实现如下:

1.接口,作为装饰者的类都必须继承它;

public interface MyDecoration {

public void paint();


}

2.装饰者类

public class Mydec  implements MyDecoration {
private  MyDecoration  decor;

public Mydec(MyDecoration decor) {
   this.decor = decor;
 }

public void paint(){
decor.paint();
System.out.println("给画涂上了颜色");

}

3.需要装饰的主体类

public class MyPaint  implements MyDecoration{


@Override
public void paint() {
// TODO Auto-generated method stub
System.out.println("用铅笔画了一幅画");

}


}


4.具体调用

public class Test {
public static void main(String[] args) {   

MyPaint p=new MyPaint();//实例化主体类
Mydecs ms=new  Mydecs(p);//实例化装饰类
ms.paint();  //调用装饰类方法

}


}


至此我们就简单实现了一个装饰者:运行以上程序我们得到的结果为:用铅笔画了一幅画,给画涂上了颜色;




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值