デザインモードのデコレーションモード(Decorator)


装飾モードは基本的に4つの部分から構成され、単純に、抽象コンポーネント、単純コンポーネント、抽象装飾キャラクタ、具体的な装飾キャラクタに分けられる.以下に簡単な説明例を示します.
 
   抽象コンポーネント:Component.java
package com.javapatterns.decorator;

public interface Component
{
    void sampleOperation();
}

 
 
  詳細:ConcreteComponent.java
package com.javapatterns.decorator;

public class ConcreteComponent implements Component
{
    public void sampleOperation()
    {
        // Write your code here
    }
}

 
 
   抽象装飾キャラクタ:Decorator.java
package com.javapatterns.decorator;

public class Decorator implements Component
{
	public Decorator(Component component)
    {
//        super();
        this.component = component;
    }

    public Decorator() {
    }

    public void sampleOperation()
    {
        component.sampleOperation();
    }

    /**
     * @link aggregation 
     */
    private Component component;
}

 
 
   具体的な装飾キャラクター:
package com.javapatterns.decorator;

public class ConcreteDecorator extends Decorator
{
    public void sampleOperation()
    {
        super.sampleOperation();
    }
}

 
  
   クライアントクラス:
package com.javapatterns.client

import junit.framework.TestCase;

public  class  Client   extends  TestCase{

         public  testDecorator(){
                  new ConcreteDecorator(
                          new ConcreteComponent ();
                  );
        }
}

 
  装飾モードは、ioストリームのように、バイトストリーム、文字ストリーム、ファイルストリーム、パイプストリーム、シーケンス化オブジェクトの操作にかかわらず、非常に一般的に使用されています.
  彼に使う.