首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式笔记之四 装饰模式

2012-08-24 
设计模式笔记之四 装饰模式?/** * 被装饰者接口 */public interface Composite {public void methodA()pu

设计模式笔记之四 装饰模式

?

/** * 被装饰者接口 */public interface Composite {public void methodA();public void methodB();}/** * 被装饰对象 */public class ContreteComposite implements Composite {@Overridepublic void methodA() {System.out.println("ContreteDecorator methodA");}@Overridepublic void methodB() {System.out.println("ContreteDecorator methodB");}}/** * 具体装饰者1 */public class ConcreteDecorator1 implements Composite {private Composite composite;public ConcreteDecorator1(Composite composite) {this.composite = composite;}@Overridepublic void methodA() {//这里实现装饰功能System.out.println("ConcreteDecorator1 methodA");//这里调用被装饰者的原来功能composite.methodA();}@Overridepublic void methodB() {//这里实现装饰功能System.out.println("ConcreteDecorator1 methodB");//这里调用被装饰者的原来功能composite.methodB();}}/** * 具体装饰者2 */public class ConcreteDecorator2 implements Composite {private Composite composite;public ConcreteDecorator2(Composite composite) {this.composite = composite;}@Overridepublic void methodA() {//这里实现装饰功能System.out.println("ConcreteDecorator2 methodA");//这里调用被装饰者的原来功能composite.methodA();}@Overridepublic void methodB() {//这里实现装饰功能System.out.println("ConcreteDecorator2 methodB");//这里调用被装饰者的原来功能composite.methodB();}}/** * 装饰者模式的使用 */public class TestDecorator {/** * @param args */public static void main(String[] args) {Composite composite = new ConcreteDecorator2(new ConcreteDecorator1(new ContreteComposite()));composite.methodA();composite.methodB();}}

热点排行