setメソッドの削除
初期化の際に設定し、その後変更してはいけないフィールドにsetメソッドや、プロパティのsetアクセサが定義されている場合は削除します。
たとえば「絵本」を管理するためのクラスを作成し、コンストラクタで単価を設定したとします。
// 絵本
public class PictureBooks
{
// 単価
private int _unitPrice;
// コンストラクタ
public PictureBooks(int unitPrice)
{
this._unitPrice = unitPrice;
}
}
その後、他のクラスで絵本の単価を知る必要があり、単価プロパティを用意したとします。
// 単価
public int UnitPrice
{
get
{
return this._unitPrice;
}
set
{
this._unitPrice = value;
}
}
思わずsetアクセサも定義してしまいましたが、これでは絵本クラスの外から単価を編集できてしまいます。
これはマズイので「setメソッドの削除」を用いてsetアクセサを削除しましょう。
// 単価
public int UnitPrice
{
get
{
return this._unitPrice;
}
}
こうしておけば絵本クラスの外から単価が編集されることがなくなります。
もし絵本クラス内での単価変更を許可する場合は、setアクセサのアクセス属性で制御します。
// 単価
public int UnitPrice
{
get
{
return this._unitPrice;
}
private set
{
this._unitPrice = value;
}
}
上記例では、単価を絵本クラスの外に公開しますが、設定は絵本クラスのみが行えます。
コメントはまだありません。