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