Builder パターン試行 (2) ~基本に忠実(1)~
2008/09/23 20:00 - デザインパターン
まずは基本に忠実に Director と Builder を使ったケースから。
今回のコードは「増補改訂版Java言語で学ぶデザインパターン入門」の Builder パターンのサンプルコードにある構造をそのまま使いました。
結果、以下の六個のクラスが協業することとなります。
- Main.as (ドキュメントクラス)
- Director.as (ディレクタクラス)
- Builder.as (抽象ビルダクラス)
- CircleBuilder.as (円形を描画する個別ビルダクラス)
- RectBuilder.as (方形を描画する個別ビルダクラス)
- SimpleDrawn.as (描画エンジンクラス)
最初の説明は、前提条件である SimpleDrawn から始めます。 Builder 向けにするというのは、どこをどう変えればいいのか、という話。
SimpleDrawn
コンストラクタにすべて突っ込んでいた描画に関するプロパティを、以下のメソッドでそれぞれ別々に定義するようにします。 その結果コンストラクタは空になりました。
- setTarget(target:DisplayObject)
- 簡易図形を描く対象の指定(Shape/Sprite/MovieClip)
- setType(type:String)
- 形状の指定(方形/円形)
- setSize(w:Number, h:Number)
- 図形のサイズの指定(幅、高)
- setFillProp(fillColor:uint, fillAlpha:Number = 1)
- 塗りのプロパティの指定(色、アルファ値)
- setLineProp(lineThickness:Number, lineColor:uint = 0, lineAlpha:Number = 1)
- 線のプロパティの指定(太さ、色、アルファ値)
以上の各メソッドから必要な物を適宜選んで準備が整ったら、draw メソッドを実行します。 するとそこではじめて図形が描画されるという流れです。
まぁ最初の三つは必須なので、選択の余地というのは setFillProp と setLineProp からいずれかを選ぶのか、もしくは共に選ぶのか、しかありませんが。
なお setFillProp と setLineProp の引数の順序は、それぞれ beginFill メソッドと lineStyle メソッドの引数の順序に合わせてあります。 これで指定間違いは減ることでしょう。
続く。