《ActionScript 3 设计模式》学习笔记:模板方法

在模板方法模式中,抽象类扮演了及其重要的角色。虽然ActionScript 3并不支持abstract关键字,但仍然可以使用抽象类及抽象方法的相关概念。

模板方法是在设置算法的抽象类中定义,其定义了程序执行时的算法步骤,这些步骤方法全部或部分由抽象方法组成,由子类覆盖这些方法来完成具体实现。


以初始化一个游戏为例,我们定义一个游戏的抽象类AbstrackGame,并定义模板方法initialize():

package
{
	public class AbstractGame
	{
		public function AbstractGame()
		{
			throw new Error("Abstract Class!");
		}
		
		//模板方法,该方法定义了初始化一个游戏的算法流程
		final public function initialize():void
		{
			createField();
			createTeam("red");
			createTeam("blue");
			starteGame();
		}
		
		public function createField():void
		{
			throw new Error("Abstract Method!");
		}
		
		public function createTeam(name:String):void
		{
			throw new Error("Abstract Method!");
		}
		
		public function starteGame():void
		{
			throw new Error("Abstract Method!");
		}
	}
}
initialize()方法定义了创建一个游戏的所有流程,包括创建场地,创建队伍,开始游戏。

之后通过具体游戏类来实现其中的模板方法中的抽象方法:

package
{
	public class FootballGame extends AbstractGame
	{
		public function FootballGame()
		{
		}
		
		override public function createField():void
		{
			trace("Create Football Field");
		}
		
		override public function createTeam(name:String):void
		{
			trace("Create Football Team Named " + name);
		}
		
		override public function starteGame():void
		{
			trace("Start Football Game!");
		}
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值