(1)外观模式编程要求:喝茶是广东人的一种生活方式,一杯好茶需要以下五步:1、准备优质凉水;2、准备茶叶(菊花 or 铁观音 or 普洱 or 西湖龙井); 3、烧热水;4、清洗茶具;5、冲泡才能完成。欧阳锋、黄药师、洪七公三人来到了湛江乐山路上著名的茶馆——翠悦轩,落座后点完茶叶种类就等着服务员泡茶喝了。
时间: 2023-07-10 21:07:22 浏览: 110
外观模式是一种结构型设计模式,它提供了一个简化接口,使得复杂的子系统更加易于使用。在这个场景中,我们可以使用外观模式来简化喝茶的过程,让三位江湖人士更加轻松地享受茶馆的服务。
首先,我们需要定义一个茶馆服务员类,它可以负责完成准备优质凉水、烧热水和清洗茶具这三个步骤。茶馆服务员类中可以包含相应的方法,如prepareWater()、boilWater()和cleanTeaSet()等。
接下来,我们可以定义一个茶叶类,它可以表示菊花、铁观音、普洱和西湖龙井等不同种类的茶叶。茶叶类中可以包含相应的属性和方法,如name、brew()等。
最后,我们可以定义一个茶馆类,它可以作为外观模式的核心类,提供一个简化的接口,以便三位江湖人士能够更加方便地点茶并享用茶馆的服务。在茶馆类中,我们可以定义一个brewTea()方法,它可以根据客人的需求选择相应的茶叶,并调用茶馆服务员类中的方法完成烧水、清洗茶具和冲泡茶叶等操作。这样,三位江湖人士只需要点好茶叶,就可以坐等茶馆的服务员为他们冲泡一杯好茶了。
以下是示例代码:
```
// 茶叶类
class Tea {
constructor(name) {
this.name = name;
}
brew() {
console.log(`冲泡${this.name}茶叶`);
}
}
// 茶馆服务员类
class Waiter {
prepareWater() {
console.log('准备优质凉水');
}
boilWater() {
console.log('烧热水');
}
cleanTeaSet() {
console.log('清洗茶具');
}
}
// 茶馆类(外观模式)
class TeaHouse {
constructor() {
this.waiter = new Waiter();
}
brewTea(teaName) {
const tea = new Tea(teaName);
this.waiter.prepareWater();
this.waiter.boilWater();
this.waiter.cleanTeaSet();
tea.brew();
console.log(`一杯${teaName}茶已经为您准备好了`);
}
}
// 江湖人士点茶
const teaHouse = new TeaHouse();
teaHouse.brewTea('菊花');
teaHouse.brewTea('铁观音');
teaHouse.brewTea('普洱');
teaHouse.brewTea('西湖龙井');
```
输出结果如下:
```
准备优质凉水
烧热水
清洗茶具
冲泡菊花茶叶
一杯菊花茶已经为您准备好了
准备优质凉水
烧热水
清洗茶具
冲泡铁观音茶叶
一杯铁观音茶已经为您准备好了
准备优质凉水
烧热水
清洗茶具
冲泡普洱茶叶
一杯普洱茶已经为您准备好了
准备优质凉水
烧热水
清洗茶具
冲泡西湖龙井茶叶
一杯西湖龙井茶已经为您准备好了
```
阅读全文