?
/**
* 抽象构件角色
* @author InJavaWeTrust
*
*/
public interface Farmer {
public void work(String job);
}
?
/**
* 具体构件角色
* @author InJavaWeTrust
*
*/
public class Jack implements Farmer {
@Override
public void work(String job) {
}
}
?
/**
* 装饰角色
* @author InJavaWeTrust
*
*/
public class Work implements Farmer {
private Farmer farmer;
public Work(Farmer farmer) {
this.farmer = farmer;
}
@Override
public void work(String job) {
farmer.work(job);
}
}
?
/**
* 具体装饰角色
* @author InJavaWeTrust
*
*/
public class Plant extends Work {
public Plant(Farmer farmer) {
super(farmer);
}
public void work(String job) {
System.out.println(job);
}
}
?
/**
* 具体装饰角色
* @author InJavaWeTrust
*
*/
public class Harvest extends Work {
public Harvest(Farmer farmer) {
super(farmer);
}
public void work(String job) {
System.out.println(job);
}
}
?
/**
* 测试类
* @author InJavaWeTrust
*
*/
public class TestDecorator {
public static void main(String[] args) {
Farmer farmer = new Jack();
Farmer plant = new Plant(farmer);
plant.work("种植");
Farmer harvest = new Harvest(farmer);
harvest.work("收获");
}
}
?
原文:http://injavawetrust.iteye.com/blog/2310967