0

このようなローカライズされた質問をして申し訳ありませんが、確認が得られるまで、プロジェクトを進める自信がありません。

テンプレートパターンについてたくさん読んだことがありますが、ウィキペディアに良い例があります。

これは、基本仮想メソッドを作成してから、基本クラスを継承し、必要な場所でオーバーライドすることを示しています。このサイトの例は、基本クラスを継承する独占とチェスの例です。

ですから、私の質問は、チェスだけになり、他には何も起こらないアプリケーションがある場合、(教育演習として以外に)テンプレートパターンを使用することに何か利点があるでしょうか?

4

5 に答える 5

9

いいえ、それは「 You Ai n'tGonnaNeedIt」のカテゴリに分類されると思います。

具体的には、特定の問題を解決するためのデザインパターンが存在し、コードでその問題を解決する必要がない場合は、コードを追加するだけで何のメリットもありません。

于 2012-10-02T13:28:39.960 に答える
2

いいえ。非常に単純化された表面的な方法で表現されたテンプレートパターンは、合計コードサイズとテンプレートコードサイズの間の特定の関係から始める価値があります。あなたの例では、チェスゲームがプログラム全体になるので、ここでテンプレートパターンを使用する必要はありません。

于 2012-10-02T13:30:14.660 に答える
2

テンプレートパターンは、特定の状況で使用されます。アルゴリズムをスケッチしたいが、特定のステップを異なるようにする場合に使用されます。

これは、チェスのアプリケーションで役立つ可能性があります。ただし、「このパターンとそのパターンを使用する」という考えでアプリケーションの開発を開始するべきではありません。代わりに、コードを開発すると、特定のパターンが必要であることがわかります。

これは、テスト駆動開発アプローチが本当に便利な場所です。これにより、各ステップでコードをリファクタリングできます。

これを説明する素晴らしい本は、パターンへのリファクタリングです。

于 2012-10-02T13:32:00.927 に答える
1

私はあなたのチェスゲームを書いて、将来戻ってきて独占に合うように物事を変えることを提案します。しかし、パターンを使用してパターンを学習したい場合は、まったく異なるものになります。その場合は、単純なものから始めて、複雑なものを理解しやすくすることをお勧めします。

于 2012-10-02T13:30:03.197 に答える
1

それは本当にプログラムの部分に依存します。テンプレートの全体的な考え方は、変更されないアルゴリズムを持ち、そのアルゴリズムの特定のステップを追加または編集できるようにすることです。

決して変更しないこともあるかもしれませんが、これは設計原則の問題であり、これは良い習慣であり、後でそれらを実装したいと思うかもしれません。ただし、100%確信している場合は、通常は時間とコード行を節約できるため、省略できます。テンプレートの使用法を学びたいかどうかによって異なります。

また、GOF原則のWebサイトは非常に優れています。

于 2012-10-02T13:31:15.297 に答える