DFdou's Blog Life is short,Be yourself.

7kankan11bookekzwС˵Ҫ · uawx鶼Ķ ðƴӢ ޴½
1105/090

AAS3WDP-Chapter 5 Template Method模板方法

拿到了AS3设计模式(AAS3WDP)的中文版,亚马逊的送书速度比当当好很多~
看得挺慢,不过也看到了第5章,模板方法和工厂模式,同时讲到了抽象类,乖乖的敲了下代码,顺便做下笔记吧。
AS3中没有抽象类,但是可以通过别的办法实现同抽象类一样的效果,下次看到这个东西再讲,呵呵。
现在开始今天的内容"模板方法",我们先建立一个AbstractGame类,代码如下:

package {
	public class AbstractGame {
		public function initialize():void {
			createField();
			createTeam("red");
			createTeam("blue");
			startGame();
		}
		public function createField():void {
			throw new Error("Abstract Method!");
		}
		public function createTeam(name:String):void {
			throw new Error("Abstract Method!");
		}
		public function startGame():void {
			throw new Error("Abstract Method!");
		}
	}
}

其中的initialize()就是模板方法,它调用createField();createTeam();startGame();3个方法,但是这个类本身不提供这3个方法的实现,而通过子类来实现。

子类FootballGame覆盖上述3个方法:

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

具体引用则是这样,先实例化,然后就调用模板方法。

import FootballGame;
var FGame:FootballGame=new FootballGame();
FGame.initialize();

顺便唠叨一句,杭州的天气热的也实在太快了点吧?

Some Related Posts

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

:zhuang :xizao :wuwu :wenhao :wc :touxiang :shuaya :shuajian :shengtian :paopao :no :meinv :maonv :loveu :leilei :kua :jrjr :dahan :chi :chaocai :byebye


CommentLuv Enabled

No trackbacks yet.