?
/** * 抽象构件角色 * @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