装饰者设计模式

package 模式练习部分;

        首先创建,手机接口,然后创建最基本功能的手机,也就是只有接电话功能的手机,然后在这个基础上在设计一个装饰类 开始具体的装饰过程,

按照本例中的步骤,下面要做的就是对于具体装饰者的创建,先有彩铃,然后开始接电话,然后在接完电话以后,没有什么其他的事情了,开始看会儿电视休息一下。。。

创建一个接口

创建最基本功能的手机

创建装饰类1

创建装饰类2

在主方法中进行测试

实现装饰者的功能。。

下面附上代码。

interface Phone {
public void call();
}


class PhoneTempl implements Phone {


public void call() {
// TODO 自动生成的方法存根
System.out.println("电话的基本模式:打电话");
}
}


// 创建装饰者类出事情况下是什么都不做修饰的
class DectorPhone extends PhoneTempl {
private Phone p;

public DectorPhone (){

}
public DectorPhone(Phone p) {
super();
this.p = p;
}


public void call() {
this.p.call();// 子类重写了父类的方法,当调用子类的方法的时候,调用的是父类的call()方法
}
}


//下面开始具体的修饰功能
class ColorPhone extends DectorPhone{
public ColorPhone(Phone p){
super(p);
}

//对于父类方法的重写
public void call(){
System.out.println("先来一段彩铃!");
super.call();
}
}


//在接完电话以后还有看会儿电视


 class WactchTv extends DectorPhone{
 
//如果父类的构造函数已经有没有参数的了 那么不用集成父类无参数的构造函数 
//否则必须继承重写父类中的所有带参数的构造函数
//这样是为了实现子类对于父类对象的赋值初始化
public WactchTv(Phone p) {
super(p);
// TODO 自动生成的构造函数存根
}
public void calll(){
super.call();
System.out.println("打完电话了我要看会儿电视了!");
}

 }


public class DectorDemoTest {
public static void main(String[] args) {
PhoneTempl pp = new PhoneTempl();
DectorPhone d = new ColorPhone(pp);
d.call();
System.out.println("彩铃响了,电话来了,电话接了,看电视呀!");
DectorPhone wDectorPhone=new WactchTv(d);
wDectorPhone.call();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值