现在的位置: 首页 > 综合 > 正文

FactoryMethod

2013年10月12日 ⁄ 综合 ⁄ 共 952字 ⁄ 字号 评论关闭
class Product
{
        private var className:String;
        
        private function Product()
        {
        }
        
        public function get classname():String
        {
                return className;
        }
}

class Creator
{
        //constructor
        private function Creator()
        {
        }
        // Methods
        public function FactoryMethod():Product
        {
                return;
        }
}

class ConcreteProductA extends Product
{
        public function ConcreteProductA()
        {
                className="ConcreteProductA";
        }
}

class ConcreteProductB extends Product
{
        public function ConcreteProductB()
        {
                className="ConcreteProductB";
        }
}

class ConcreteCreatorA extends Creator
{
        // Methods
        public function FactoryMethod():Product
        {
                return new ConcreteProductA();
        }
}

class ConcreteCreatorB extends Creator
{
        // Methods
        public function FactoryMethod():Product
        {
                return new ConcreteProductB();
        }
}




//client.fla
// FactoryMethod returns ProductA
var c:Creator = new ConcreteCreatorA();
var p:Product = c.FactoryMethod();
trace("Created  " + p.classname);
// FactoryMethod returns ProductB
c = new ConcreteCreatorB();
p = c.FactoryMethod();
trace("Created  " + p.classname);


//output
//Created  ConcreteProductA
//Created  ConcreteProductB


抱歉!评论已关闭.