我知道这 两个问题解释了为什么我不能在接口中使用受保护/私有方法,我想要解决的是如何控制从哪里调用我的方法,简单地说:
public class EditField : IEditField
{
public EditField() {}
public EditField(IStateMachine stateMachine) {}
public void Action_Commit() {}
public void Action_Undo() {}
}
消费者可以使用默认的 IStateMachine,或者自己滚动。
我想知道是否有任何方法可以确保仅从 IStateMachine 中调用 Action_ 方法,这样消费者就不会开始弄乱状态的东西。我怀疑没有办法做到这一点,但想知道我是否遗漏了什么。我不是设计模式大师。