有効なものとそうではないものがある、というのが正直なところです。たとえば、言語処理系のようなものを作るなら未だにVisitorパターンは有用です(が、それの対になるInterpreterパターンは実用上使いづらすぎてあまり見かけませんが)。 Compositeは有効とか有効でないとか以前にオブジェクト指向言語でツリー構造作るなら「これ以外に良いやりかたあったっけ」みたいな奴なので当然に現役ですし、Observerも変種含めるなら今でも普通にあります。Strategyについては、メソッド一つで済むようなものは結局関数オブジェクトとして書けるわけで、そこに吸収されていった感があります。 今でも使われているけど、有効性(有害性)について議論が分かれるパターンもあって、その代表格はTemplate Method(その一種とも言えるFactory Methodも同じ)でしょう。実装継承の有害性が広く