すべてをクラスにするというのは設計のこと。

C++のようなハイブリッド言語ならすべてをクラスにする必要はないし
GtkのようにC言語でオブジェクト指向設計をすることもできる。

オブジェクト指向設計とはオブジェクトそのものをイメージし
それを(クラスベースの言語であれば)クラスとして定義することをいう。

よくあるおかしな設計は
構造体を定義して関数を構造体の中に入れるというもの。
この方法はソース上ではデータと機能がカプセル化されているかもしれないが
頭の中ではデータと機能がバラバラになっている。

OOマンセーは頭の中でオブジェクトそのものをイメージできる。

>>153
デザバタ・レベルの抽象化を非OOPLでやるともっと冗長になる。
あと、どうでもいいことだけど
C++のTemplateとデザパタのTemplate Methodは関係ない。