我有一个基类,项目中的所有可绘制元素都使用它。它拥有一个 Rectangle,它需要暴露给所有子类,因为它需要在各种情况下作为参数传入。超级直接:
public abstract class DrawableSurface
{
protected Rectangle m_Rect;
public Vector2 Position
{
get { return m_Rect.Location; }
set { m_Rect.Location = value; }
}
etc. ...
该矩形的区域、位置等通常与类的区域和位置同义,但我想强制执行所有客户端(继承基类)必须通过类的属性与矩形交互的约定。换句话说,我有一个客户可以访问的受保护类,以便他们可以将其传递给函数,但我从不希望他们执行任何直接的 m_Rect.Whatever 访问。
是否有执行此约定的好方法(除了文档?)