どのデザインパターンが最も人気があると思いますか?
どのデザインパターンが最も人気があると思いますか?
回答:
最も一般的なのは「泥の大玉」だと確信しています。残念ながら私たち全員にとって。
http://en.wikipedia.org/wiki/Big_ball_of_mud
MVCとそのバリエーションは、間違いなくトップデザインパターンの1つです。
Gang-of-Fourデザインパターンについて話している場合は、Singletonと言わなければなりません。これは非常に悲しい状況です。まるでプログラマーがデザインパターンの魔法について耳にし、最初のパターンの後に停止するかのようです。
アーキテクチャスタイルのパターン(つまり、複数のクラスまたはレイヤーにまたがるデザインパターン)について話している場合、MVCと言わなければなりません。他のいくつかの一般的なものは、リポジトリパターンとサービスロケータです。
デコレータ
構成時に実行時にオブジェクトに機能を追加します。私の個人的なお気に入り。
編集:また、ファクトリはおそらく最も一般的なものの1つです。
戦略パターン
依存性注入を使用したことがある場合は、戦略パターンを使用しています。
以前の答えに加えて、継承されたプロジェクトの獣から今日遭遇した新しいものを追加します。
コピーペースト
デバッグ中に、同じような名前の2つの関数を呼び出すコードに遭遇しました。
if(x)
Func1
else
Func2
Func1とFunc2には同じパラメーターがありました。それらを引き出して比較したところ、Func1がFunc3を呼び出し、Func2がFunc4を呼び出すことを除いて、100%同じです。私はそれらを引き出し、それらを比較しました。1行を除いて100%同じ。そのため、以前のプログラマーは、フラグパラメーターを追加する代わりに、正確に1か所で使用される2つのプライベート関数に2つの50行ネスト関数をコピーして貼り付けることにしました。泣きたい。
Gang-of-Fourデザインパターンについて言えば、Observerパターンを使用しないプログラムは考えられません。また、Jacoが述べたように、Singletonも非常によく使用されますが、残念ながらハンマーになりました(完全に必要ではない場合でも、プログラマーはそれを使用します)。
$_SESSION
変数に格納されたシングルトンです。
ソフトウェア設計レベルでは、Composite、Strategy、およびTemplate(および、より小規模にはFactory)が最も広く使用されていると主張します。過去10年ほどの間、OO設計を使用してシステムを構築する場合、継承よりも合成の方が好まれていました。その結果、上記のパターンの組み合わせは、他のすべてのIMOよりもはるかに重要な役割を果たします。
アーキテクチャ的には、エンタープライズではMVCを、物事の組み込み側ではステートマシンに基づいたパターンを主張します。