JavaScript 设计模式:行为模式与响应式视图库模式解析
1. 状态与策略模式
状态模式常用于实现状态机。状态模式和策略模式的关键区别在于,在状态模式中,不同状态之间相互了解。例如, ClosedState 会创建一个新的 OpenState 实例以进行状态转换, OpenState 也知晓它可以转换到的所有潜在状态( DraftState 、 ClosedState 和 MergedState )。而在策略模式中,不同策略是独立的,彼此互不了解,如 PureObjectAssignStrategy 和 MutatingObjectAssignStrategy 不会相互引用。
策略模式的作用是为不同的内部实现提供一致的接口,当不同的实现算法需要在集成消费者不知情的情况下进行互换时,它是一种有用的抽象。
以下是状态模式的代码示例及优化:
class IllegalOperationError extends Error {
constructor(stateInstance) {
this.stateInstance = stateInstance;
throw new Error('Illegal operation for State');
}
}
class PullRequestBaseState {
constru
超级会员免费看
订阅专栏 解锁全文
98

被折叠的 条评论
为什么被折叠?



