设计模式与 LLM 的结合:以模版方法模式为例
模版方法模式概述
模版方法模式(Template Method Pattern)是一种行为型设计模式。它定义了一个算法的骨架,而将一些步骤延迟到子类中实现。这样,子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。
想象一下泡一杯茶的场景:
- 煮水温杯
- 注水浸茶
- 茶水入杯
- 添加配料
无论泡什么茶,前三个步骤通常是不可省略的。我们可以把这些重复的步骤包装起来成为一个'骨架',需要时直接使用。当然,你也可以根据需求加枸杞或柠檬,即重新定义特定步骤。
在面向对象编程中,这对应于父类定义流程,子类实现具体细节。这种模式遵循'好莱坞原则'(Don't call us, we'll call you),由框架控制流程,开发者填充细节。
JavaScript 代码实现
在 JavaScript 中,我们可以通过构造函数和原型链来实现模版方法模式。
首先定义一个基类 Tea,用于创建泡茶的对象:
// 定义 Tea 构造函数
function Tea(type, add) {
this.add = add;
this.type = type;
console.log('你准备泡一杯' + this.type);
}
Tea 对象作为原型对象,负责构建对象实例的属性。每个 JavaScript 对象都有一个与之关联的原型(prototype)。当试图访问对象的某个属性时,如果对象本身没有这个属性,JavaScript 引擎会自动查找对象的原型链,直到找到该属性或者到达原型链的末端。
Tea 通过 prototype 属性添加方法,以它为原型的对象可以共享这些方法:
// 在 Tea 对象中使用 prototype 添加方法
Tea.prototype.boilWater = function () {
console.log("把水煮沸");
}
Tea.prototype.steepBag = function () {
console.log("用沸水浸泡茶叶");
}
Tea.. = () {
.();
}
.. = () {
(. != ) {
.( + .);
} {
.();
}
}
.. = () {
.();
.();
.();
.();
}
greenTea = (, );
wlTea = ();
greenTea.();


