読者です 読者をやめる 読者になる 読者になる

Shut the fuck up and write some code

グダグダ言わずにコードを書きたいブログ

Templete Methodを実装してみる。

flashlite3.0 flashlite2.0 AS2

調子に乗ってTemplete Methodもやってみる。結城さんのデザパタ本を参考にしてますが、やっぱりAS2です。この時代錯誤感はすさまじい。

■大元インターフェイス templete.as

class templete {
	
	public function printing() {
	}
	
	public function add() {
	}
	
	public function reduce() {
	}
	
	public function mix() {
	
		for (var i = 0; i <=3; i++ ) {
			add()
		}
		
		printing()
		
		for (var i = 0; i <=3; i++ ) {
			reduce()
		}
		
	}
	
}


■継承クラスA templete_a.as

class templete_a extends templete {
	
	private var str:String
	
	public function printing() {
		trace(str)
	}
	
	public function templete_a(chr:String) {
		str = chr
	}
	
	public function add() {
		trace("-+-+-+-")
	}
	
	public function reduce() {
		trace("-*-*-*-")
	}
	
}


■継承クラスB templete_b.as

class templete_b extends templete {

	private var str:String
	
	public function printing() {
		trace(str)
	}
	
	public function templete_b(chr:String) {
		str = chr
	}
	
	public function add() {
		trace("+/+/+/+")
	}
	
	public function reduce() {
		trace("-=-=-=-")
	}
	
}


■実行

/*instance*/
var testA:templete_a  = new templete_a("patternA")
var testB:templete_b  = new templete_b("patternB")

/*実行*/
testA.mix()
testB.mix()


■結果

-+-+-+-
-+-+-+-
-+-+-+-
-+-+-+-
patternA
-*-*-*-
-*-*-*-
-*-*-*-
-*-*-*-
+/+/+/+
+/+/+/+
+/+/+/+
+/+/+/+
patternB
-=-=-=-
-=-=-=-
-=-=-=-
-=-=-=-


大元のクラスを作って継承、オーバーライドでメソッドを書き換えるけど基本的なメソッド名は同じ。プロパティもインターフェイスに含めても良かったと思われますがメソッドだけにしました。
すごい基本的な内容ですな。これの派生のFactoryMethodを学ぶための基礎ですね。

デザインパターンはちまちま攻略していきたい。使えそうなのは全部書いてみよう。