K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>関連する操作やデータをまとめる、というのは普通にモジュール化であって、 >>私が「疑りぶかい~」で書いたオセロの例の、Cでstaticで隠蔽を行った >>board.cで達成していることでは? >ここが重要です。 >構造化プログラミングの「モジュール化」は基本的にモジュール化した所でしか有効ではありません。 >1つの関数で考えた場合は分かりにくいかと思いますが、関連する複数の関数での場合を考えてください。 >つまり拡張を見越して単位を合わせてモジュール化しておく必要があると言う事です。 >オブジェクト指向の場合はクラス単位でモジュール化されているような物であると言う事です。 >つまり末端のクラスから上位のクラスまで、全ての単位でモジュール化されているため、 >あらゆる単位で変更が可能だと言う事です。 > >つまり私の言いたいのは、 >オブジェクト指向の >利点は「再利用性が高まる事」=「変更がしやすい、変更しても壊れにくい」。 >本質は「抽象化」 >だと言う事です。 >利点は「見通しの良さ」 >本質は「マルチプルインスタンス」 >ではないと思います。 > > >>いや、「世間のCプログラマはstaticで実装を隠蔽するような気の効いたことは >>していない。だからお前の認識はズレているのだ」ということならそうなのかも >>しれませんけど(1ソースファイル1関数、という規約のプロジェクトとかって、 >>今でもあるんでしょうか)。 >774RRさんの言う通り、「対象読者層が異なる」というだけの話のようです。 >つまり「インスタンスが複数あっていい」というあたりを理解していないプログラマ向けの文書で、 >私の指摘は「インスタンスが複数あるのは当たり前」と理解しているプログラマの視点という事です。 > > >>うーん、Loggerくらいならstaticでもかまわないとは確かに思いますけれど、 >>私ならアプリケーションのインスタンスのフィールドに持ちますね。 >>オセロの例なら、Boardクラスで障害発生時とかのログを残すとして、Loggerは >>Boardに持たせます。名人戦のBoardだけ障害発生時の対応が違ったりするかも >>知れませんし。よって、BoardのコンストラクタかsetLogger()メソッドの >>引数でLoggerを渡すことになります。 >棋譜をセーブデータとして残すために、コンストラクタかセッターにファイル名を渡すと >言うならボードクラスに入れるのはいいと思いますが、 >名人戦の障害発生対応が違うかもしれないので、エラーログクラスを受け渡すと言うのは >おかしいと思います。 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!