public abstract class ExeCommand
{
private static object commandHandler;
public static object CommandHandler
{
get { return commandHandler; }
set { commandHandler = value; }
}
}
class ServerCommand : ExeCommand
{
}
這是它的光禿禿的骨頭。 我想允許如何防止對派生類中的靜態屬性進行設置訪問?
ExeCommand.CommandHandler = myCommandHandler
但不
ServerCommand.CommandHandler = myCommandHandler
任何方式強制執行呢?
它是我正在實施的命令模式的一部分。 ExeCommand具有CommandText,參數和在派生類中重寫的Execute()方法。例如。 ServerCommand將使用反射來調用使用CommandText作爲方法名稱的方法。 CommandHandler是包含在另一個命名空間中保存的這些方法的類。 UserCommand是以類似方式使用的另一個ExeCommand。這似乎是錯誤的,UserCommand.CommandHandler = myCommandHandler也會影響ServerCommand的命令處理程序。通過ExeCommand強制更改屬性似乎是正確的。 –
也許這些不應該是靜態屬性呢? – LBushkin