- 用一個類來創(chuàng)建工廠或?qū)嵗?/li>
/**
* 矢量圖工廠
*/
function ShapeFactory(name)
{
var shape;
switch(name)
{
case 'rect':
shape = new Rect()
break
case 'circle':
shape = new Circle()
break
case 'line':
shape = new Line()
break
case 'arrow':
shape = new Arrow()
break
}
return shape;
}
/**
* 位圖工廠
*/
function BitmapFactory(name)
{
var bitmap;
switch(name)
{
case 'rect':
bitmap = new Rect()
break
case 'circle':
bitmap = new Circle()
break
case 'line':
bitmap = new Line()
break
case 'arrow':
bitmap = new Arrow()
break
}
return shape;
}
/**
* 抽象工廠
*/
function DrawFactory(name,type)
{
var factory;
switch(name)
{
case 'shape':
factory = new ShapeFactory(type)
break
case 'bitmap':
factory = new BitmapFactory(type)
break
}
return shape;
}
/**
* 應用
*/
var rect = new DrawFactory('shape','rect')

抽象工廠