Flash AS教程-decorator Pattern
上周我购买了Head First的《设计模式》一书,开始探索设计模式的奥秘。虽然我的主要编程语言是脚本语言,但我决定挑战自己,探索更深层次的编程知识。我向朋友推荐了这本书,但他因为忙碌无法抽出时间阅读。于是我决定整理笔记,将书中的精华部分呈现给他。
这本书主要面向Java开发者,虽然我没有系统学习过Java,但书中的设计模式与ActionScript 3.0中的设计模式有很多相似之处。为了更深入地理解设计模式,我参考了另一本书《Advanced ActionScript 3 with Design Patterns》。两本书的区别主要在于叙事的行文风格上,《Head First 设计模式》通过有趣的故事和生动的插图引导读者理解设计模式,而《Advanced ActionScript 3 with Design Patterns》则更注重技术细节和实际应用。由于我的英文水平有限,阅读英文版书籍时感到有些吃力,这也是两书之间的一个区别。
我想用ActionScript 3.0来实现《设计模式》中的所有模式,并分享我的实现过程。虽然不是专业程序员出身,但我希望通过自己的努力,将复杂的概念用简单易懂的方式表达出来。
其中,我想重点介绍一下装饰者模式(Decorator Pattern)。以狼蚁网站SEO优化的程序代码为例,假设饮料店提供多种饮料(如咖啡、茶等),并为这些饮料添加调料(如牛奶、糖等)以增加口感。这些调料可以看作是装饰饮料的元素。在ActionScript中,我们可以通过类文件来实现这一模式。
我们有一个饮料基类(Beverage),包含描述方法和费用方法。然后,我们有一种具体的饮料(如Espresso),它继承自饮料基类,并有自己的描述和费用。接下来,我们有一个抽象的调料类(CondimentDecorator),它是所有调料类的基类,其子类会覆盖基类的描述和费用方法。我们有一个具体的调料类(如Mocha),它在构造函数中传入一个饮料实例,并返回包含调料和饮料的描述以及费用。
通过这种方式,我们可以使用装饰者模式来动态地为饮料添加调料,并计算最终的费用和描述。这种实现方式具有一定的递归味道,非常有趣且实用。
Mocha咖啡装饰器类
```java
package .dp.decorator;
import .dp.decorator.Beverage;
import .dp.decorator.CondimentDecorator;
/
@author tkj
/
public class Mocha extends CondimentDecorator {
private Beverage beverage;
public Mocha(Beverage beverage) {
this.beverage = beverage;
}
@Override
public String getDescription() {
return beverage.getDescription() + ".Mocha";
}
@Override
public double cost() {
return beverage.cost() + 0.20;
}
}
```
Soy豆沫装饰器类
与Mocha类相似,只是成本有所不同。
```java
package .dp.decorator;
import .dp.decorator.Beverage;
import .dp.decorator.CondimentDecorator;
/
@author tkj
/
public class Soy extends CondimentDecorator {
private Beverage beverage;
public Soy(Beverage beverage) {
this.beverage = beverage;
}
@Override
public String getDescription() {
平面设计师
- Flash AS教程-decorator Pattern
- AI简单制作长投影教程
- ai怎么设计电邮图标矢量图- ai设计电子邮件标志
- CAD光顺曲线命令怎么连接两个线段-
- CDR利用修剪命令将一个字分成两半的两种方法
- CAD长方体怎么进行三维旋转- cad三维旋转功能的使
- flash制作一个简易的小动画
- 怎么在cad中添加自己(用户)定义的打印戳记-
- MAYA分层渲染功能完全解析
- ai怎么保存为flash文件- ai导出swf格式的教程
- 3dsMax怎么捕捉冻结对象-
- 3Dmax怎么建模三维立体的水晶摆件-
- FLASH制作跳动的小球
- cdr怎么设计电脑显示器模型- cdr画立体显示器的教
- AI使用网格绘制周星星
- AI偏移路径怎么使用-偏移路径使用方法介绍