今日のコーディングの世界における重要な誤解は、パターンが構成要素であるということです。あなたが取るAbstractFactory
ここにFlyweight
多分そことSingleton
あそことXMLとプレストとともに、それらを接続するには、動作するアプリケーションを持っています。
そうではありません。
うーん、それは十分な大きさではありませんでした。
パターンは構成要素ではありません
それは良いです。
パターンは、問題があることがわかったときに使用するものです。パターンが提供する柔軟性が必要な場合、または構成ファイルで小さな言語を作成しているときにつまずいた場合は、ちょっと待って、これは私が書いている独自のインタプリタです-これは既知の解決済みの問題で、インタープリターパターンを使用してください。
しかし、そこから注意してください、それはあなたがあなたのコードで発見したものであり、あなたが始めたものではないということです。ジャワのクリエイターは、開始時に「ああ、私たちは整数でフライ級を出してあげる」と言うのではなく、することができ、パフォーマンスの問題に実現しませんでした解決でフライ級に。
したがって、適切なパターンを見つけるために使用する「フローチャート」はありません。パターンは、繰り返し発生する特定のタイプの問題の解決策であり、その重要な部分はパターンに蒸留されます。
パターンから始めることは、解決策を見つけて問題を探すようなものです。これは悪いことです。過剰なエンジニアリングにつながり、最終的には設計の柔軟性が失われます。
コードを書いているときに、ファクトリを書いていることに気付いたら、「ああ、これは私が書いている工場です」と言って、ファクトリパターンを知っている知識を使って、 Factoryパターンを再発見しようとせずにコードを作成します。しかし、「ここにクラスがあります。柔軟に対応できるように、そのためのファクトリを作成します」から始めるわけではありません。
Eamma Gamma(Gamma、Helm、Johnson、およびVissidesの)とのインタビューからの抜粋は次のとおりです。デザインパターンの使用方法:
すべてのパターンを使用しようとするのは悪いことです。なぜなら、合成デザイン、つまり誰も必要としない柔軟性を備えた投機的デザインになるからです。最近のソフトウェアは複雑すぎます。他に何をすべきかを推測する余裕はありません。本当に必要なことに集中する必要があります。だから、パターンのリファクタリングが好きです。特定の種類の問題やコードの匂いがあるとき、最近人々はそれを呼ぶようになっているので、人々はパターンツールボックスに行って解決策を見つけることができることを学ぶべきです。
「いつ、何を使用するか」の最良のヘルプは、おそらくソフトウェアデザインパターンの Wikipediaページです。「分類とリスト」セクションでは、各パターンが属するカテゴリとその機能について説明します。フローチャートはありません。そこにある説明は、おそらく、「いつ、何を使用するか」の短い断片として見つけることができる最高のものです。
プログラミングのさまざまな分野でさまざまなパターンを見つけることに注意してください。Webデザインには独自のパターンセットがあり、JEE(Webデザインではない)には別のパターンセットがあります。金融プログラミングのパターンは、スタンドアロンのアプリケーションUIデザインのパターンとはまったく異なります。
したがって、それらすべてをリストする試みは本質的に不完全です。あなたはそれを見つけ、それを使用する方法を見つけて、それが最終的に第二の性質になり、あなたはそれを再び使用する方法や時期を考える必要はありません(誰かがそれを説明するように頼むまで)。