設計モード-strategyモードに対する認識


最近、デザインモードのstrategyモードを勉強しました.次はstrategyモードに対する私の認識です.
strategyはオブジェクトの行動型モードで、主に一連のアルゴリズムを定義して、これらのアルゴリズムを1つ
個を別々のクラスにカプセル化する.
strategyの実装は、抽象クラスをベースクラスとして、ベースクラスに基づいて異なるクラスを生成し、これらのクラスは異なるシーンで異なる選択を提供します.
例えば、最近台湾は国民投票をして、台湾海の危機が現れて、私たちはどのように現れた危機に対処すべきで、この時私たちが提供した多種の方案は私たちが異なる危機で異なる処理をするために提供します.

public abstract class CrisisEvent
{
     public void happen();//    
      public abstract void dealEvent();//      
}
    
public class CrisisEventSmallWar extends CrisisEvent
{
   public void dealEvent()
   {
         //     ,       
    }
}
   
public class CrisisEventBigWar extends CrisisEvent
{
    public void dealEvent()
    {
        //     ,        
     }    
}
   
public class CrisisEventExecute
{
   private CrisisEvent   _crisisEvent;
     
   public CrisisEventExecute(CrisisEvent crisisEvent)
   {
      this._crisisEvent = crisisEvent;  
   }

   public void dealEvent()
   {
      _crisisEvent.dealEvent();
   }
  
   public void changeCrisisEvent(CrisisEvent otherCrisisEvent)
   {
      _crisisEvent = otherCrisisEvent;
   }
}
 
public class TestDealEvent()
{  
   public static void main(String[]args)
   {
     CrisisEventExecute smallCrisisEvent = new CrisisEventExecute(new CrisisEventSmallWar);
     smallCrisisEvent.dealEvent();
     CrisisEventExecute bigCrisisEvent = new CrisisEventExecute(new CrisisEventBigWar);
     bigCrisisEvent .dealEvent();
   }
}
  

StrategyはFactoryと一定の類似があり、Strategyは比較的簡単で分かりやすく、運転時に自由に切り替えることができる.Factoryのポイントは、オブジェクトを作成することです.
Strategyは以下の場合に適しています.
1.異なる形式でファイルを保存する.
2.異なるアルゴリズムでファイルを圧縮する.
3.異なるアルゴリズムで画像をキャプチャする.
4.曲線やブロック図barなど、同じデータの図形を異なる形式で出力する