观察者、发布订阅、策略、工厂和单例在前端怎么用?

先理解原理和示例,再练习完整口述与追问。

按耦合关系与变化点选择;主题直接通知与事件中心;替换算法、创建实例、作用域唯一;SSR 不共享用户单例。

观察者通常由主题持有并通知观察者,发布订阅通过中间事件中心降低双方直接依赖。策略把可变算法封装为可替换实现,工厂集中创建过程,单例约束某个作用域里只有一个实例。模式是描述方案的语言,不是必须套进所有函数的模板;引入间接层要有真实收益。

不同订单状态的展示可用状态到渲染策略的映射,避免长条件链;上传实例由工厂统一注入认证和取消能力;组件事件订阅需返回解除函数。SSR 中全局日志配置可按需要共享,但当前用户会话必须按请求隔离,不能因为“单例方便”放模块顶层。

发布订阅不意味着逻辑自动异步,也不意味着不会内存泄漏。模式过度使用会隐藏流程,简单条件清晰时无需工厂和容器层层包装。

我按变化点解释模式:通知关系用观察者或事件中心,算法差异用策略,复杂创建用工厂,确需唯一资源才用有明确作用域的单例。先解决实际耦合与生命周期,再决定是否引入抽象。