ネタ元 → オブジェクト指向に移行できない理由?
曰く:
「過去の自分を考えると、オブジェクト指向に移行できない(しにくい)理由の
ひとつに、「データと画面」を一緒にしているから、というのがあるのかな?
Model / View / Control とか、Document & View とか言われている奴。
あるいは、3階層とか n階層とか言われている、あれ。」
前々から感じてました。
VB/C#/Delphi/C++BuilderなどなどのRADってさ、フォームに部品を
ポトポト落っことし、プロパティ設定してイベントハンドラ乗せて
いぢれば立派な見てくれをこしらえてくれます。それは大変結構なこと。
なんだけどぉ、このお手軽さに甘えてつーかノリに押されてっつーか、
見てくれとは本来独立なはずのロジック(実体)を見てくれの中に押し込ん
じゃいがちですわね。楽だし早いしRAD流なのかも知れんけど、
これやっちゃうとツブシが利かんし自動テストに苦労する。
怖いと思うんが、ビギナがこのお手軽さに味をしめ、でっかいアプリも
この一枚岩方式でいいと思っちまうんじゃないかってとこ。
入門書の類でも見てくれと実体とを分離する話をきちんとしてくれてる
のを見かけたためしがありませんし。
なんやかんやと批判の多いMFCではありますが、Document/Viewてゆー
ロジック(Document)と見てくれ(View)とを分離した形態をFrameworkが
提供し推奨してるのに、僕はヒジョーに好感を抱いています。
# 欲を言えばDialogもDocumentとViewに分けてほしかったなりよ。
僕はデータベースの類をいぢくることがほとんどないのですけれど、
デザイナが提供するコンポーネントに"見てくれ"を伴わないヤツが
あるじゃないですか、データセットだかデータソースだかそんなの。
こいつらは本来ViewであるFormの構成要素じゃないよなーて
思うんですけどね。だからそーゆーのがForm内に貼り付いちゃうのが
どうにも気に入りません。
考えようによっちゃFormアプリそれ自体データベースのViewで、
データソースの類はデータベースすなわちDocumentとの"繋ぎ"
と言ってしまえばそぉなんでしょうけども。
# ...思えばこのネタ、何度も引き合いに出してますねー ^^;