AS3设计模式:模板方法模式(Template Method Pattern)

什么是模板方法(Template Method)模式?

我们经常会用到template,使用过PPT或者office工具的人都应该非常清楚template的作用。模板方法模式是最为常见的模式之一,它是基于继承的代码复用思想,其结构和用法也体现了面向对象程序设计的核心。

模板方法模式的结构由抽象类(Abstract Class)和具体子类(Concrete Class)两部分组成。抽象类就像一个模板,给出了一个对象的轮廓和骨架。它包含一些基本方法(primitive method),但并没有具体实现,就像接口Interface一样,这些基本方法由具体子类来实现。抽象类还包含一个将这些基本方法集合起来的方法,叫做模板方法(template method),由此而产生了模板方法模式。

AS3中的抽象类(Abstract Class)

抽象类无法实例化instantiate,只能扩展extend。与接口Interface只定义公开方法名而不实现不同,抽象类定义了接口和实现。我们接触的一些AS3的内置类,如DisplayObject和InteractiveObject等都是抽象类。AS3并不支持抽象类,但是我们还是可以使用抽象类和和抽象方法的思想。在C#/Java等语言中可以使用abstract关键字定义抽象方法,这样子类必须覆盖这些抽象方法。但是AS3中没有abstract关键字,因此我们可以在抽象方法里抛出错误的方法,这样如果在运行时runtime调用抽象方法就会抛出一个错误,但可以编译通过。

模板方法(Template Method)模式示例

相信大家都用过文章内容管理系统(CMS),通常里面会有一个文章模板,大家使用文章模板来发表文章。下面我们来看看模板方法模式是如何实现这个过程的。

1、定义文章模板抽象类ArticleTemplate:
2、定义Actonscript文章子类ASArticle:
3、再定义Javascript文章子类JSArticle:
4、最后我们来看看测试类Test:

运行结果为:
创建AS文章标题: AS3设计模式
创建AS文章作者: flashlizi
创建AS文章内容: 模板方法模式的具体内容
AS文章发布成功

创建JS文章标题: JavaScript内存泄露
创建JS文章作者: RIAidea.com
创建JS文章内容: JavaScript内存泄露的文章内容
JS文章发布成功

点击下载示例源文件


[本日志由 flashlizi 于 2008-02-07 10:06 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
评论: 0 | 引用: 0 | 查看次数: 2022
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭