装饰模式——java实现

问题描述;

用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。

类图:

 

运行截图:

 

 

 

代码:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//Phone.java
package shiyan11;
 
public interface  Phone {
        public void call();
}
//SimplePhone.java
package shiyan11;
 
public class SimplePhone implements Phone{
    public SimplePhone(){
        System.out.println("手机收到来电");
    }
    public void call(){
        System.out.println("发出声音:主人来电话啦!");
    }
}
//UpgradePhone.java
package shiyan11;
 
public class UpgradePhone implements Phone{
    private Phone phone;
    public UpgradePhone(Phone a){
        phone=a;
    }
    public void call(){
        phone.call();
    }
}
//JarPhone.java
package shiyan11;
 
public class JarPhone extends UpgradePhone{
    public JarPhone(Phone phone){
        super(phone);
        System.out.println("***增加振动的功能***");
    }
    public void shoke(){
        System.out.println("振动:嗡嗡嗡");
    }
}
//ComplexPhone.java
package shiyan11;
public class ComplexPhone extends UpgradePhone{
    public ComplexPhone(Phone phone){
        super(phone);
        System.out.println("***增加闪光功能***");
    }
    public void light(){
        System.out.println("灯光闪烁:咔嚓");
    }
}
posted @   好(justice)……  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示