プロジェクト内のすべてのドローアブル要素で使用される基本クラスがあります。さまざまな状況でパラメーターとして渡す必要があるため、すべてのサブクラスに公開する必要がある Rectangle を所有しています。非常に簡単です:
public abstract class DrawableSurface
{
protected Rectangle m_Rect;
public Vector2 Position
{
get { return m_Rect.Location; }
set { m_Rect.Location = value; }
}
etc. ...
その Rectangle の面積、位置などは通常、クラスの面積と位置と同義ですが、(ベースをサブクラス化する) すべてのクライアントが Rectangle と対話するためにクラスのプロパティを通過する必要があるという規則を適用したいと考えています。言い換えれば、私はクライアントがアクセスできる保護されたクラスを持っているので、関数に渡すことができますが、m_Rect.Whatever アクセスを直接実行したくありません。
この規則を強制する良い方法はありますか (ドキュメントを超えて?)