设计模式之模板和委派

模板模式

什么是模板模式?

想象一下,你和朋友决定一起做一道菜,比如 “炒青菜”。你们都知道做这道菜的基本流程是固定的:‌买菜 -> 洗菜 -> 切菜 -> 炒菜 -> 装盘。这个流程就是 “算法的骨架”。但是,每个人炒菜的“细节”可以不一样:你可能喜欢放点蒜末提香、朋友可能喜欢加一勺醋、你们可能用的锅、火候也不同。‌模板设计模式,就是为了解决这种 流程固定,细节可变 的情况而设计的。它把“炒菜”这个固定流程写在一个“父类”(可以理解为一个标准菜谱)里,这个流程是不能改的。而 “炒菜” 这个具体步骤则被定义成一个 “抽象方法”,交给具体的 “子类” 去实现。


设计模式之策略

什么是策略模式?

定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换,这就叫策略模式 strategy。 比如你打算去旅行(目标),你可以选 “坐飞机”、“开私驾车” 或 “骑自行车”(不同策略)。这些方式随你挑,但不影响你 “去旅行” 这个最终目的。


设计模式之外观

什么是外观模式?

外观,也叫 Facade Pattern,就是给复杂的子系统提供一个 “统一的接待窗口”。想象你去政府办业务,如果没用外观模式,你需要跑房管局、税务局、民政局等 5 个窗口;有了外观模式,政务大厅设立了一个 “综合业务窗口”,你把材料给他,他负责在后台调动各个部门,你只需要跟这一个窗口打交道就可以了。