闽公网安备 35020302035485号
原型模式是JavaScript es6的23种设计模式中的创建型的一种设计模式。它允许创建对象的副本,同时又能高效地解决重复实例化过程中的性能问题。此模式基于一个简单的概念:复制一个已经存在的对象,调整其状态以满足新的需求,而不是通过构造函数创建新的对象。这样可以避免复杂的初始化过程,减少系统的开销。接下来我们就用泡茶的流程这一案例来探讨一下。
function Tea(type){
this.type=type
console.log('您准备泡一杯'+this.type);
}
let IceRedTea=new Tea('冰红茶')
在JS中,每当创建一个新函数,该函数都会自动获得一个名为prototype的属性,这个属性是一个对象,即所谓的原型对象。它通过原型链,所有对象实例可以共享同一份原型上的属性和方法!原型链是当试图访问一个对象的某个属性或方法时,当该对象没有该属性或方法时,JS会在其原型对象中查找,以此类推形成的一条链。function Tea(type){
this.type=type
console.log('您准备泡一杯'+this.type);
}
Tea.prototype.boilWater=function(){
console.log('把水煮沸');
}
let IceRedTea=new Tea('冰红茶')
IceRedTea.boilWater()
在原型链中又有显示原型和隐式原型:显示原型用prototype属性查找原型;隐式原型用__proto__属性查找原型。function Tea(type){
// 堆代码 duidaima.com
this.type=type
console.log('您准备泡一杯'+this.type);
}
Tea.prototype.boilWater=function(){
console.log('把水煮沸');
}
let IceRedTea=new Tea('冰红茶')
IceRedTea.boilWater()
console.log(IceRedTea.__proto__)
console.log(IceRedTea.__proto__===Tea.prototype)
通过这些代码我们可能就能大致了解原型和原型链,接下来我们就通过以上内容来完成这个泡茶的过程吧。function Tea(type){
this.type=type
console.log('您准备泡一杯'+this.type);
}
// prototype 原型链
Tea.prototype.boilWater=function(){
console.log('把水煮沸');
}
Tea.prototype.steepTeaBag=function(){
console.log('用沸水浸泡茶叶')
}
Tea.prototype.pourInCup=function(){
console.log('把茶水倒进杯子')
}
Tea.prototype.addLemon=function(){
console.log('加柠檬')
}
// 接口,模板方法接口
Tea.prototype.init=function(){
lemonTea.boilWater();
lemonTea.steepTeaBag();
lemonTea.pourInCup();
lemonTea.addLemon();
}
var lemonTea=new Tea('柠檬茶')
lemonTea.init();
其中我们封装了一个init函数用来美化我们的代码。以上是使用我们经典传统编程所完成的,接下来让我们再次来使用大模型来完成这个工作吧。
require('dotenv').config();
const OpenAI=require('openai')
const client=new OpenAI({
apiKey:process.env.OPENAI_API_KEY,
baseURL:'https://api.chatanywhere.tech/v1'
})
const getChatResponse = async function(model,prompt,n){
const response = await client.chat.completions.create({
model:model, // 适合聊天的模型 有很多种
messages: [{
role : 'user',
content : prompt
}]
})
return response.choices[0].message.content;
}
const main=async()=>{
// AIGC 的优势就是处理文本,生成内容
const text=`
泡一杯茶很容易。首先,需要把水烧开。
在等待期间,拿一个杯子并把茶包放进去。
一旦水开了,就把它倒在茶包上。
等待一会儿,让茶叶浸泡,几分钟后,取出茶包。
如果你愿意,可以加一些糖或牛奶调味。
就这样,您可以享受一杯美味的茶了。
`
const prompt=`
您将获得有三个引号括起来的文本。
如果它包含一系列的指令,则需要按照一下格式重新编写这些指令。
第一步-...
第二步-...
...
第N步-...
如果文本种不包含一系列的指令,则直接写“未提供步骤”
"""${text}"""
`
const response=await getChatResponse('gpt-3.5-turbo',prompt);
console.log(response);
}
main();
与经典传统编程一样能得到我们的结果。