| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==[[Strategy パターン]]==[[Java]] | {{category [[Category:アルゴリズム}}]]*アルゴリズムをカプセル化して、それらを交換可能にする。[[アルゴリズム]]をカプセル化して、それらを交換可能にする。*アルゴリズムを、利用するクライアントから独立に変更することができるようになる[[アルゴリズム]]を、利用するクライアントから独立に変更することができるようになる
package strategy;
import java.io.BufferedReaderBuffered[[R]]eader; import java.io.FileReaderFile[[R]]eader;
import java.io.IOException;
import java.io.PrintWriter;
/**
* [[Strategy パターン]] * アルゴリズムをカプセル化して、それらを交換可能にする。[[アルゴリズム]]をカプセル化して、それらを交換可能にする。 * アルゴリズムを、利用するクライアントから独立に変更することができるようになる[[アルゴリズム]]を、利用するクライアントから独立に変更することができるようになる
*
* Strategy クラス
* サポートするすべてのアルゴリズムに共通のインタフェースを宣言サポートするすべての[[アルゴリズム]]に共通のインタフェースを宣言
* ・ Sorter
*
* ConcreteStrategy クラス
* Strategy クラスのインタフェースを利用して、アルゴリズムを実装クラスのインタフェースを利用して、[[アルゴリズム]]を実装
* ・ MargeSorter
* ・ InsertionSorter
String fileName = "c:\\work\\sort\\test.txt";
String outName = "c:\\work\\sort\\test.sort.txt";
BufferedReader Buffered[[R]]eader reader = null;
PrintWriter writer = null;
String line = null;
try {
List<String> buf = new ArrayList<String>();
reader = new BufferedReaderBuffered[[R]]eader(new FileReaderFile[[R]]eader(fileName));
while ((line = reader.readLine()) != null) {
buf.add(line);
st = System.currentTimeMillis();
// アルゴリズムの交換[[アルゴリズム]]の交換
SortContext srt = new SortContext(new MargeSorter());
// SortContext srt = new SortContext(new InsertionSorter());
}
/**
* [[マージソート]]
*/
class MargeSorter extends Sorter {
}
/**
* [[挿入ソート]]
*/
class InsertionSorter extends Sorter {

案内メニュー