Flash AS教程-decorator Pattern

平面设计 2025-03-05 16:55www.168986.cn平面设计培训

上周我购买了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() {

上一篇:AI简单制作长投影教程 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by