私は、Javaでテンプレートメソッドパターンの実装例を探しています。例えば、List<T>
をループし、の各項目の署名void execute(T t)
でテンプレートメソッドを実行するジェネリッククラスを作成したいとします。テンプレートメソッドパターンを使用してリスト<T>をループするにはどうすればよいですか?
-1
A
答えて
2
Wikipedia article for the Template method patternにはかなり明確なJavaの例があります。
パターンの基本的な概念は、コードの可変部分が別々の方法で分割されていることです。これにより、共有パーツはスーパークラスに残り、子孫クラスは可変パーツに対応するメソッドを実装し、必要に応じて異なる動作を提供します。あなたは、パターンの一般的に受け入れられて実装に近くに滞在したい場合
、あなたのコードは、これらの線に沿って次のようになります。この場合には、必要な動作の具体的な実装が匿名であることを
public abstract class TemplateMethodLoop<T> {
public abstract void execute(T t);
public void loop(List<T> array) {
for (T t : array) {
this.execute(t);
}
}
}
public class TemplateMethodPatternClient {
public void stringListPrinter(List<String> stringList) {
new TemplateMethodLoop<String>() {
public void execute(String string) {
System.out.println(string);
}
}.loop(stringList);
}
}
注意stringListPrinter()
メソッド内の内部クラスがTemplateMethodLoop
スーパークラスに拡張されています。
関連する問題
- 1. リスト<T>をレポートのデータソースとして使用するにはどうすればよいですか?
- 2. whileループとforループを使用してアスタリスクを印刷するにはどうすればよいですか?
- 3. Pythonでwhileループを使ってリストをソートするにはどうすればよいですか?
- 4. マップを使用して関数をリストに適用するにはどうすればよいですか?
- 5. リスト<AnonymousType#1>をリスト<Model>に変換するにはどうすればよいですか?
- 6. <<を使用してクラスにファイルオブジェクトを供給するためにoperator <<を使用するにはどうすればよいですか?
- 7. Twythonを使用している人のリストを生成するにはどうすればよいですか?
- 8. ループを使用してアセットフォルダからオーディオファイルをロードするにはどうすればよいですか?
- 9. Import-CliXmlを使用してカスタムクラスオブジェクトの汎用リストをデシリアライズするにはどうすればよいですか?
- 10. AutoMapperを使用してASP.NET MVCでリストをSelectListにマップするにはどうすればよいですか?
- 11. 複数のリストをループしてRでデータフレームを作成するにはどうすればよいですか?
- 12. サブプロセスを使用してPythonループ内でシェルプログラムを実行するにはどうすればよいですか?
- 13. ループを使用してテキストフィールドで値を取得するにはどうすればよいですか?
- 14. Swift 3でループを使用してJSON値を印刷するにはどうすればよいですか?
- 15. ループを使用して値をベクトルに格納するにはどうすればよいですか?
- 16. Javassistを使用して、空のループにコードを追加するにはどうすればよいですか?
- 17. ループを使用して名前を配列に保存するにはどうすればよいですか?
- 18. ループを使用してファイルをpandasにインポートするにはどうすればよいですか?
- 19. ループを使用して列名を動的に生成するにはどうすればよいですか?
- 20. evalを使用してユーザー入力をリストに入れるにはどうすればよいですか?
- 21. matplotlibを使用して値リストからヒストグラムを生成するにはどうすればよいですか?
- 22. リストの理解を使用してこれを行うにはどうすればよいですか?
- 23. 述語関数を使用してJavaでリストをフィルタリングするにはどうすればよいですか?
- 24. Javaでマルチスレッドを使用してレコードのリストをソートするにはどうすればよいですか?
- 25. SASS/SCSSループを使用してこれを書き直すにはどうすればよいですか?
- 26. matplotlib.pyplotを使用してリストを一度にプロットするにはどうすればよいですか?
- 27. Linqを使用してオブジェクトにリストを挿入するにはどうすればよいですか?
- 28. Swiftを使用してアクションをループするにはどうすればよいですか?
- 29. ループを使用してピクチャボックスの配列を作成するにはどうすればよいですか?
- 30. キーを使用してWhile(真)ループを終了するにはどうすればよいですか?