装饰模式decorator:动态的给一个对象增加额外的功能,
输出结果
吃
吃
一边走着
package com.decorator;
public interface Person {
public void eat();
}
package com.decorator;
public class Man implements Person{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("吃");
}
}
package com.decorator;
public abstract class decorator implements Person {
private Person person;
public void setPerson(Person person) {
this.person = person;
}
public void eat() {
this.person.eat();
}
}
package com.decorator;
public class Mandecorator extends decorator{
public void eat(){
super.eat();
this.go();
}
public void go(){
System.out.println("一边走着");
}
}
package com.decorator;
public class Test {
public static void main(String[] args) {
Man m = new Man();
m.eat();
Mandecorator md = new Mandecorator();
md.setPerson(new Man());
md.eat();
}
}
输出结果
吃
吃
一边走着