Appearance
为何需要设计模式
软件会变化:需求变、人员变、技术栈变。若类与类之间随意依赖、职责堆在一处,改一处牵一片,这就是设计债务。
设计模式解决什么
设计模式是在面向对象设计中反复出现的可复用方案的命名与结构总结,用来:
- 控制变化:把易变部分隔离到少数扩展点。
- 沟通成本:说「用策略模式」比描述一长串类关系更高效。
- 避免重复造轮子:在合适场景用成熟结构,而不是每次都 if-else 堆逻辑。
没有模式会怎样
下面示意「订单根据支付方式算手续费」——未抽象时业务分支膨胀:
每新增一种支付,都要改 Order 或同一巨型方法,违反开闭原则。
引入抽象之后
把「算手续费」抽成接口,订单只依赖接口:
这正是后面要讲的策略模式思想:用多态代替分支。设计模式不是炫技,而是在重复问题上的结构化答案。
小结
- 模式服务于可维护、可扩展,不是银弹。
- 先理解问题形状,再选模式;不要为了用模式而用模式。