Introduction

Flash is a lightweight cross-platform runtime for rich media, enterprise applications and mobile applications, as well as an integrated development environment. Flash can be programmed in ActionScript 1/2/3.

Monday, September 15th, 2003 at 4:26 pm

Builder

Basic implementation:

// :: Builder :: //
class Builder{
        private var result:String;

        private function Builder(){
                result = new String();
        }
        public function buildPartA(aString:String):Void{
                result += “ :: ” + aString + “ :: “;
        }
        public function buildPartB(aNumber:Number):Void{
                result += “ :: ” + aNumber.toString() + “ :: “;
        }
        public function buildPartC(aBoolean:Boolean):Void{
                result += “ :: ” + aBoolean.toString() + “ :: “;
        }
}

// :: ConcreteBuilder :: //
class ConcreteBuilder extends Builder{
        public function buildPartB(aNumber:Number):Void{
                switch(aNumber){
                        case 1:
                        result += “ :: one :: “;
                        break;
                        case 2:
                        result += “ :: two :: “;
                        break;
                        case 3:
                        result += “ :: three :: “;
                        break;
                        default:
                        result += “ :: ” + aNumber.toString() + “ :: “;
                }
        }
        public function getResult():String{
                return result;
        }
}

// :: Director :: //
class Director{
        private var builder;

        public function Director(aConcreteBuilder:Builder){
                builder = aConcreteBuilder;
        }
        public function construct(anArray:Array):Void{
                for(var i=0; i< anArray.length; i++){
                        switch(typeof(anArray[i])){
                                case “string“:
                                builder.buildPartA(anArray[i]);
                                break;
                                case “number“:
                                builder.buildPartB(anArray[i]);
                                break;
                                case “boolean“:
                                builder.buildPartC(anArray[i]);
                                break;
                        }
                }
        }
}

// usage
var aBuilder:ConcreteBuilder = new ConcreteBuilder();
var aDirector:Director = new Director(aBuilder);
aDirector.construct([”name“, “age“, 2, true]);

trace(aBuilder.getResult());

// Output:
// :: name ::  :: age ::  :: two ::  :: true ::