当前位置:首页 > 设计模式 > 正文内容

装饰模式

canca19年前 (2007-03-26)设计模式431

//装饰模式
//CopyRight(C) CAnca software Office.2006
//Created by CAnca.

public class DecoratorMode{
 public static void main(String[] args){
  Component component = new ConcreteComponent();
  Decorator decoratorA = new ConcreteDecoratorA();
  Decorator decoratorB = new ConcreteDecoratorB();
  decoratorA.setComponent(component);
  decoratorB.setComponent(decoratorA);
  decoratorB.Operation();
  //decoratorA.Operation();
 }
}


abstract class Component{
 abstract void Operation();
}

class ConcreteComponent extends Component{
 public void Operation(){
  System.out.println("ConcreteComponent.Component()");
 }
}

abstract class Decorator extends Component{
 protected Component component;
 public void setComponent(Component component){
  this.component = component;
 }
 public void Operation(){
  if(this.component != null){
   component.Operation();
  }
 }
}

class ConcreteDecoratorA extends Decorator{
 private String newState = null;
 public void Operation(){
  super.Operation();
  newState = "New State.";
  System.out.println("ConcreteDecoratorA.Operation():" + newState);
 } 
}

class ConcreteDecoratorB extends Decorator{
 public void Operation(){
  super.Operation();
  newPrint();
 }
 
 public void newPrint(){
  System.out.println("ConcreteDecoratorB.Operation()");
 }
}

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/659.html

标签: 设计模式
分享给朋友:
返回列表

上一篇:享元模式

下一篇:组合模式

“装饰模式” 的相关文章

抽象工厂模式

//抽象工厂模式//Copyright CAnca Software office//Created by CAnca.2006public class AbstractFactory{ public static void main(String[] args){  ...

工厂方法模式

//工厂方法模式:现实例子//CopyRight(C)CAnca Software Office. 2006//Created by CAnca. import java.util.*; public class Real_World_Example{ public static void...

建造者模式

//建造者模式//CopyRight(C)CAnca Software Office.//Created by CAnca. import java.util.*; public class BuilderMode{ public static void main(String[] arg...

原型模式

//原型模式//CopyRight(C) CAnca Software Office.2006//Created by CAnca. public class PrototypeMode{ public static void main(String[] args){  ...

代理模式

//代理模式--真实例子//CopyRight(C)CAnca Software Office.2006//Created by CAnca.   public class ProxyMode_RealWorld{     public static void...

桥接模式

//桥接模式//CopyRight(C) CAnca Software Office 2006.//Created by CAnca. import java.util.*; public class BridgeMode{ public static void main(String[]...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。