趣味でプログラミングをしています。
ちょっと解釈に困っていることがあります。
オブジェクト指向を取り入れている言語の場合、
「メソッド(メンバ関数)はフィールド(メンバ変数)にアクセスしなければならない」と言われますよね。
これ自体はいいですが、複数メンバ変数(フィールド) があった場合はどうなのでしょうか?
■ メソッドは 必ず「すべての」フィールドにアクセスしなければならない
■ メソッドは 必ず「少なくとも一つの」フィールドにアクセスしなければならない
の2通りの解釈ができますね。
例えば ファイルを読み書きするクラスを C/C++ で組むとします。 ( FILEポインタを介する方 )
コンストラクタで ファイル名 を受け取ります。
オプションとして (= デフォルト引数 ) で ファイルモード ( テキストか バイナリか ) を受け取るとします。
UML風に書くと、
+ CONSTRUCTOR(...) + DESTRUCTOR() + open(void) : bool + 処理1(...) : bool ... - filename : std::string - mode : int // バイナリモードかテキストモードか - fp : FILE*
みたいになりますよね。
openメソッドで すでに filename と mode でファイルを開いているので
処理1メソッド ( writeとか readとか ) は filename と mode は使いませんよね。
使うのは fp のみ。
もし「すべての」と解釈すると「違反」かなと。
どう解釈すればいいのでしょうか?
「自分で組んでみろ」と言われても...
( コンパイルは通るが、「原則」とか「命名規則」とかはコンパイラがはじかないし... )
[情報]
使える言語: C, C++, Java
宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。