智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...
随笔 - 991, 文章 - 0, 评论 - 27, 阅读 - 341万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

生成器模式(builder)

Posted on   Bill Yuan  阅读(233)  评论(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);
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示