智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

生成器模式(builder)

Posted on 2009-11-23 12:39  Bill Yuan  阅读(230)  评论(0编辑  收藏  举报
还是那个说法,我要吃东西就去相应的食堂窗口,但我不能吃食堂窗口,窗口里的东西也许不少,我要跟师傅说,要这个,这个,还有这个。

举例:我已经建立了 xml解析器的工厂,现在要返回解析器本身,就让工厂创建,返回给我。

//XMLParserGetFactory.as
//生成解析读入的xml的对象的工厂
class XMLParserGetFactory implements AbstractFactory{
    var xmlParser;
    function XMLParserGetFactory(str:String){
        
//如果要求留言板列表解析器,就生成一个
        if(str==” xmlParseGuestbookList”){
            xmlParser
=new xmlParserGuestbookList();
        }
    }
    function createXmlParser(){
        
//返回所要求的解析器
        return xmlParser;
    }
}
 
//AbstractXmlParser.as
//抽象xml解析器
Interface AbstractXmlParser{
function ParseXml();
}
//xmlParserGuestBookList.as
//留言板列表解析器
Class xmlParserGuestBookList implements AbstractXmlParser{
    
//把xml字符串里的内容解析到一堆数组里
    function ParseXml(xml:XML,arrayID:Array,arrayTitle:Array){
    
//具体循环操作
    }
}

使用的时候:

var xmlParser=new XMLParserGetFactory(xmlParseGuestbookList)
xmlParser= XMLParserGetFactory. createXmlParser(xml,arrayID,arrayTitle);