C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 不変のオブジェクトとControl


(過去ログ 130 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■77189 / inTopicNo.1)  不変のオブジェクトとControl
  
□投稿者/ 不変の悩み (1回)-(2015/09/20(Sun) 18:24:58)

分類:[C#] 

質問対象 C# VisualStdio 4.0 Win 7以降

オブジェクト指向ではClass内のメンバは不変にするようにとWeb上でよく見かけますが、
FormアプリケーションのControlのようにアプリ終了までオブジェクトを保持しなければならないものは、
どうしても中のメンバの値をプロパティのSetterやメソッドを通じて変えざる終えない時があります。

このような場合は皆様はどのように対処していらっしゃるのでしょうか。

引用返信 編集キー/
■77190 / inTopicNo.2)  Re[1]: 不変のオブジェクトとControl
□投稿者/ 774RR (316回)-(2015/09/20(Sun) 18:49:11)
ええっ?初耳(ぢゃないけどそれに近い)

可能な限り変わらない・変えなくていいものをメンバにしましょって話でしょ?
たとえば人間クラスを設計するとき
class human_type {
date_type birthday;
string_type firstname;
string_type familyname;
};
メンバ変数に「年齢」を加えるのは間違いで、年齢を算出するメンバ関数なら正解。

familyname は結婚とかでも変わるわけで「不変」ぢゃないよ。

Form の Control なんかも当然、値は変わるさ。たとえば TextBox
ユーザーが操作したら Text は変わる。
操作させたくないとき IsEnabled を変更するのは当たり前。

教条主義にとらわれて現実を見なくなったら迷うに決まってる

引用返信 編集キー/
■77192 / inTopicNo.3)  Re[2]: 不変のオブジェクトとControl
□投稿者/ 不変の悩み (2回)-(2015/09/21(Mon) 06:19:20)
>当然、値は変わるさ。
そうですよね。回答ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -