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

设计方式学习之装饰模式

2012-10-11 
设计模式学习之装饰模式?1.名词解释:装饰模式:动态的给一个对象添加一个额外的职责,就增加功能来说,装饰模

设计模式学习之装饰模式

?1.名词解释:

装饰模式:动态的给一个对象添加一个额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式是为已有功能动态地添加更多功能的一种方式。

?

2.代码示例:

组件类:package DesignPattern.DecoratorPattern;public abstract class Component {public abstract void operation();}

?

具体的对象接口类package DesignPattern.DecoratorPattern;public class ConcreateComponent extends Component {@Overridepublic void operation() {// TODO Auto-generated method stubSystem.out.println("ConcreateComponent.operation is process...");}}

?

装饰类:package DesignPattern.DecoratorPattern;public class Decorator extends Component{    protected Component component;public void setComponent(Component component) {this.component = component;}@Overridepublic void operation() {// TODO Auto-generated method stubif(this.component != null) {component.operation();}}}

?

package DesignPattern.DecoratorPattern;public class ConcreateDecoratorA extends Decorator{public void operation() {super.operation();System.out.println("ConcreateDecoratorA.operation is process...");}}package DesignPattern.DecoratorPattern;public class ConcreateDecoratorB extends Decorator{public void operation() {super.operation();this.addBehavior();System.out.println("ConcreateDecoratorB.operation is process...");}private void addBehavior() {System.out.println("ConcreateDecoratorB.addBehavior is process...");}}

?

主控程序类:package DesignPattern.DecoratorPattern;public class Client {public static void main(String[] args) {ConcreateComponent c = new ConcreateComponent();ConcreateDecoratorA d1 = new ConcreateDecoratorA();ConcreateDecoratorB d2 = new ConcreateDecoratorB();d1.setComponent(c);d2.setComponent(d1);d2.operation();}}

?

热点排行