パターンの使用について

残念ながら、プログラミングコースの一環として研究所でデザインパターンを完成させた人、またはプログラミング教科書の直後にパターンのある本を読んだ人が文字通り最初のクラスからそれらを使用し始める場合を観察する必要があります。 これにより、結果が得られる場合があります。ほとんどの場合、シングルトンパターン(少なくとも、ダブルロックのイディオムについては知っています) しかし、ほとんどの場合、人がパターンを適用するという事実のためだけにパターンを適用すると、状況が発生します。 そしてこれは悪いです。



手始めに、パターンとは何ですか? 「sample」、「example」、「model」として翻訳できますが、「template」または「design template」という言葉が最も好きです。 パターンは、コードのコピー元のパターンではないためです。 これは従うべきサンプルコードです。 違いは、壁に掛かっているサンプルドキュメントとMS Word / OpenOffice Writerのドキュメントテンプレートの違いと同じです。MSWord / OpenOffice Writerは、統一フォーマット(インデント、フォント、段落フォーマット)に使用されます。



私自身の経験から少し。 13年のプログラミング経験。 (パターンに関する言葉ではなく)本に関する2年間の自習の後、私はいくつかの「カスタムメイド」アプリケーションを作成しましたが、そのうちの1つはまだ使用されています。 しかし、さらに2年後、私は次のことを考えました。 そして、次のような質問をし始めました。 ずっと後になって、これらの質問に対する答えがまさにパターンが与えるものであることに気づき始めました。 設計パターンは、命名規則を規定するだけでなく(コード設計の規則と大差ない)、コードの構造も決定します。 いいえ、プログラマはビジネスタスクの特定のタスクを解決する方法を選択できます。 たとえば、データベース内のオブジェクトへのアクセスを整理する必要があります。 これを行うには2つの方法があります。 または、CSV形式のパーサーを作成する必要があります。 できること: ビジネス上の問題を解決するために、問題を解決するためのいくつかのオプションのいずれかを選択できます。 設計パターンに精通している初心者プログラマーの間違いは、問題を解決する方法を整理する代わりに、適切なパターンを選択するために、既知の(および未知の)設計パターンを反復し始めることです。 そして、しばしば、それは間違っています。 データベース内のオブジェクトの場合、2番目の方法は、データベース内の行ごとにオブジェクトの個別のインスタンスを使用する既知のテンプレートに該当します。 しかし、プログラマーは、ほとんどの作業が一括操作を使用して実行できるとさえ考えていないため、別のパターンを使用する必要があります。 パーサーの場合、プログラマーは個々のキャラクターで作業することを選択します。これは、これが彼に知られているステートマシンパターンによく適合するためです。 しかし、その結果、彼は非常に読みにくく、修正不可能なコードを取得します。 彼は、問題を解決する方法の選択ではなく、デザインテンプレートの選択から選択を開始したためです。



Model-View-Controllerなどの高レベルのテンプレートを検討したとしても、それらのアプリケーションはビジネスタスクに対する答えであってはなりません。 プログラマーは、彼の場合、システムの動作をディスプレイから分離できる必要があることを明確に認識している必要があります。 そして、このアイデアに来て、彼が少なくともほぼどのようにそれを行うか想像して、MVCテンプレートに注意を払ってください.MVCテンプレートは、どの部分をどのように書き、どのように命名し、どの機能を与えるかを正確に説明します。



デザインパターンの知識は、コードの記述に役立ちます。 単純なテンプレートの場合、他の人が理解しやすいようにコードを設計するのに役立ちます。 より複雑なパターンは、コードの構造化に役立ちます。 ただし、チェーン「タスク」-「解決方法」-「テンプレート」-「コード」は必須であり、「タスク」-「テンプレート」-「コード」ではありません。



更新:トピック書き直し、問題の解決が終わり、パターンが始まる場所に焦点を当てました。 トピックを再発行するか、新しいトピックを作成するかはわかりません。 ハブレの行動パターンの無知のために多くを打ち負かさないための要求



All Articles