クラス設計とはつまり、適切なデータ構造の選択だと言うことです、それができない人間は未来がない

我々がプログラムをかく以上、例えオブジェクト指向を採用したところで、チューリングマシンあるいはFSMあるいはチャーチモデル的な制約に縛られる

すなわちプログラムとは、メモリに格納された状態とそれにたいする手続きによって意味あるメモリ状態を構築し解釈すると言うことだ

クラスとは、クラス内部に状態を格納しているものであるべきであり、グローバル変数は確かにクラスに押し込めれば減る
もしクラスが状態を格納しないのであれば、それはただのデータにすぎない

データはプログラマの操作対象であっても、管理対象ではない
しかしクラスに格納された変更しうる状態はプログラマが管理することになる
クラスはその状態数を最低とすることをアシストするような文法機構を持っていない
状態数を減らすことができるのは、関数だけなのである

そしてプログラマは管理すべき状態を一元管理できるパラダイムか、各所にちらばった状態を個別に管理するパラダイムかを選択している

このことをよく理解しているプログラマはオブジェクト指向でも関数指向でも大きくは間違えない