JAva設計モード(五)--ポリシーモード

1535 ワード

1、ポリシー・モードとは?
ポリシー設計モードと呼ばれる、伝達されたパラメータオブジェクトによって異なる動作を持つ方法を作成します.
2、戦略モデルの主な用途は何ですか.
オブジェクトの動作を動的に変えることができ、伝達パラメータによって異なる動作表現がある.
3、設計原理
変更部分を1つのオブジェクトに設計する方法で、継承されたサブクラスでこのメソッドを上書きし、javaの多態性を利用して、異なるサブクラスオブジェクトへの親参照をパラメータとして伝達すると(これがポリシー)、異なるサブクラスで書き換えられたメソッドが呼び出され、同じコード、異なる動作表現が実現されます
くだらないことは言わないで、直接例とコードを見てください.
class Processor
{
	public String name()
	{
		return getClass().getSimpleName();
	}
	
	String process(Object input)
	{
		return (String)input;
	}
}
class Upcase extends Processor
{
	String process(Object input)
	{
		return ((String)input).toUpperCase();
	}
}
class DownCase extends Processor
{
	String process(Object input)
	{
		return ((String)input).toLowerCase();
	}
}
public class Strategy 
{
	public static void process(Processor p,Object s)
	{
		System.out.println("Using processor " + p.name());
		System.out.println(p.process(s));
	}
	public static String s = "Test the Strategy design mode.";
	
	public static void main(String[] args) 
	{
		process(new Upcase(), s);
		process(new DownCase(), s);
	}
}

上のコードセグメントでは、Processorオブジェクトは、実行するコードセグメントを含むポリシーであり、パラメータとして渡されます.main()では、Stringタイプのオブジェクトsに2つの異なるタイプのポリシーが適用されていることがわかります.
OK、ポリシーモードの紹介が終わりました.その応用シーンを話しましょう.ポリシーモードは、クライアントに影響を与えずにアルゴリズムを変化させることができます.通常、ポリシー・モードは、1つのアプリケーションが特定のサービスまたは機能を実現する必要がある場合に適用され、そのプログラムが複数の実装方式を持っている場合に使用され、ファクトリ・モードとは異なり、ファクトリ・モードはオブジェクトの構造を重視し、伝達パラメータによって異なるオブジェクトのインスタンスを構築することができ、作成型モードである.一方,ポリシーモードは,着用パラメータによって異なる挙動表現を有し,挙動型モードである.