装饰设计模式就是对已有的对象的功能进行增强
如一个简单的demo 人吃饭,刚开始人穷只是普通的吃饭后来人生活好了吃饭就不一样了,增强了吃饭的功能- class Person
- {
- void chifan()
- {
- System.out.println("chifan");
- }
- }
- /*
- 为了不随便改变原有的代码。
- 还要增强chifan功能。
- 那么就定义一个类,对原有对象进行装饰。
- */
- class NewPerson
- {
- private Person p;
- NewPerson(Person p)
- {
- this.p = p;
- }
- public void newChifan()
- {
- System.out.println("来一杯");
- p.chifan();
- System.out.println("来一根");
- }
- }
- class PersonDemo
- {
- public static void main(String[] args)
- {
- Person p = new Person();
-
- //NewPerson np = new NewPerson(p);
- //np.newChifan();
- p.chifan();
- }
- }
复制代码 装饰模式比继承要灵活。避免了继承体系臃肿。
而且降低了类于类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。
|