私は4人のギャング自身がデザインパターンを
一般的に発生する問題に対する一般的なソリューション*
そのため、同じ種類の問題が発生した場合にパターンが関連します。そして、これは「デザインパターン」という用語の問題につながります。パターンは、繰り返し発生する認識可能なものです。したがって、実際にはデザインのパターンはなく、問題のパターンがあります。
一部のプログラミング言語には、これらの問題のいくつかに対するネイティブソリューションがあります。「デザインパターン」の本自体は、CLOSを使用している場合は訪問者パターンはほとんど価値がないと述べています。マルチディスパッチはCLOSによってネイティブにサポートされているためです。
また、.NETフレームワークには、複数のリスナーにイベントを発行するためのイベントメカニズムが組み込まれているため、このコンテキストではObserverパターンの関連性が低くなります。
デスクトップアプリケーションからWebアプリケーション**への変更は、解決しなければならないプログラミングの問題の種類も変更します。「Design Patterns」という本のパターンの多くは、デスクトップアプリケーションに関連していますが、Webアプリケーションにはあまり関係していません。もちろん、単一ページのアプリでは、これらのパターンはクライアント側でも再び関連する可能性があります。
しかし、デザインパターン、および「デザインパターン」や「エンタープライズアプリケーションアーキテクチャのパターン」などの本は、初心者のプログラマーであり、初めて新しいタイプの問題に直面したときに大きな価値があります。元に戻す機能を実装するように求められたのは初めてでした。「デザインパターン」の本がなかったら、私の実装は、おそらく、状態が変化する操作ごとにデータのスナップショットを保存するようなものだった***-非常にエラーが起こりやすく、ひどく非効率的なアプローチです。
確かに、パターンの一部は時間の経過とともに関連性が低くなり、経験豊富なプログラマーになると、それらについてあまり考えなくなります。しかし、初心者にとっては、問題を解決するための手段であり、できるだけ多く使用するための探求ではないことを覚えている限り、貴重です。
*引用はメモリから取得されるため、100%正確ではない場合があります
**私の経験では、企業が内部の基幹業務アプリケーションにWeb配信メカニズムを選択することは非常に一般的になっています。
***関数型プログラミングと関数型データ構造を学んだ後、それが実際に今日それを解決する方法になるかもしれません。