投稿者 るきお  (社会人) 投稿日時 2012/5/7 13:01:55
>こんにちは、オブジェクト指向ではGUIクラス(Form)と処理クラスは基本分離しますよね?
オブジェクト指向だから分離させているわけではないと思います。
GUI部分をPL、処理クラスをBLと呼ぶとすると、
たかくんさんの指摘のようにBLとPLは密接にかかわることが多く、完全分離は困難です。
イベントで連携すると言う判断は正しいと思います。私はこれを疎結合と呼んでいます。

If 処理クラス.データプロパティ=新規 Then
    TextBox1.Enabled=false
EndIf

この処理もイベントプロシージャの中で行い、かつ処理クラスの状態をイベントの引数から取得するようすれば気にするほど混乱しないと思います。


実際には割り切ってPLとBLを分離しない実装もあります。
PLとBLを一応わけますが、PLの方にはBLに関する情報の取得や分岐もまぜます。
この場合でもさすがにBLの方にPLの制御はまぜないです。

要は何の目的でPLとBLを分けるかです。
初期投資を低コストに抑える目的であれば上記の混在型はありです。
保守費用まで見ても混在型が採用されるかもしれません。ケースバイケースです。
拡張性や多様なプラットフォームへの対応を目的としているのであればイベントレベルの連携にとどめる(疎結合)方策を採用することが多くなるでしょう。