java装饰设计模式

Posted 大圣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java装饰设计模式相关的知识,希望对你有一定的参考价值。

将一个对象作为参数进行传递,然后对这个对象进行包装---改变其中的方法或者添加一些新的行为---装饰设计模式---装饰者模式---Decorate Model

改变一个方法:

1. 通过继承这个类,然后重写其中的方法

2. 通过对象的传递创建装饰对象,在装饰类中重新提供对应的方法
继承的缺点:

1. 单继承

2. 利用向上造型创建了一个父类对象,可以调用子类中重写方法,不能在使用父类中原来的方法

3. 如果父类对象已经存在,不能使用子类中重写之后的方法

装饰设计模式的缺点:

可能提高代码的冗余度---代理模式

 

 

 1 //人的接口
 2 public interface Person {
 3 
 4     void eat();
 5 
 6     void sleep();
 7 
 8 }
 9 
10 
11 //明星的实现类
12 public class Star implements Person {
13 
14     @SuppressWarnings("unused")
15     private Person p;
16 
17     public Star(Person p) {
18         this.p = p;
19     }
20 
21     @Override
22     public void eat() {
23         System.out.println("明星吃的是野菜~~~");
24     }
25 
26     @Override
27     public void sleep() {
28         System.out.println("上床数星星~~~");
29     }
30 
31 }
32 
33 //工人实现类
34 public class Worker implements Person {
35 
36     @Override
37     public void eat() {
38         System.out.println("工人吃一顿山珍海味~~~然后吃一个月的土~~~");
39     }
40 
41     @Override
42     public void sleep() {
43         System.out.println("上床数星星~~~");
44     }
45 
46 }
47 
48 //将工人进行包装变成明星,但本质上工人还是工人
49 public class PersonDemo {
50 
51     public static void main(String[] args) {
52 
53         Worker p = new Worker();
54 
55         p.eat();
56 
57         Star s = new Star(p);
58 
59         s.eat();
60 
61         p.eat();
62 
63     }
64 
65 }

 


以上是关于java装饰设计模式的主要内容,如果未能解决你的问题,请参考以下文章

Android Java:在 onCreateView() 中返回空视图的片段

设计模式之单例模式

Java RMI地址解析问题

炫酷 CSS 背景效果的 10 个代码片段

Java设计模式补充:回调模式事件监听器模式观察者模式(转)

Java语言基础之方法的设计