Flash中oop的设计模式
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-13
析器本身,就让工厂创建,返回给我。 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); 3.工厂方法模式(Factory Method) 我到了食堂窗口,如果师傅跟那儿抽烟,我还是吃不着东西。我说:师傅,打饭!师傅才会完成打饭这一动作。这是工厂方法模式,抽象工厂的实现通常用工厂方法模式来完成。 举例:还是上一条,我本来想用一句话带一个参数就实现具体xml解析器的实现,无奈构造函数没有返回值,所以必须用 xmlParser= XMLParserGetFactory. createXmlParser(xml,arrayID,arrayTitle); 实现。 备注:抽象工厂模式,生成器模式和工厂方法模式需要灵活应用。 4.单件模式(singleton) 我前面一个人买了一条巨大的鸡腿,我说我也要一条,师傅说,就这一条 举例:单件模式的应用是相当广泛的,它确保每个实例在全局范围内只被创建一次,我们flash里的mc大多数是单件。内核里的核心组件也只是单件,比如我的消息映射列表(见后)。 按照单件模式的严格定义,应该让类负责保存它的唯一实例。但是我在Flash里还想不到怎么实现这一点,或者实现它的意义所在,但另外一点我们可以做到,就是在全局范围内只提供该对象的唯一访问点。这可以由层次关系做到,把对该对象的访问具体实现全部封装在下层,只给上层提供唯一的访问点(原因是,上层不知道这个单件的具体信息,比如路径)。 看我内核文件的一部分: Core.as //内核 class Core { var strucGlobalParam:ConfigVariables; //站点信息 var xmlConfig:XML; //站点信息的xml化对象 var ArrayStructureInitial:Array; //用来提供给loadObject对象的数组 var ArrayForBtn:Array; //用来初始化导航条组件的数组 var objInitial:loadObject; //读取影片的对象 var objMessageMap:MessageMap; //消息映射组件 …… }这是我的内核类也就是全站最核心类的数据结构。里面的数据只有通过下层的BasicMovie,OriginalFunctionObject等类(见后)直接访问。 备注,核心思想是,确保只有一个。 5.原型模式(protoType) 到小炒窗口,看前面的哥们炒的青椒炒肉不错的样子。“师傅,我也要这样的。” 举例:这对flash的用户来说再熟悉不过了,我们经常用duplicateMovieClip()和 attachMovie()这两个函数。按照一个原型复制相应的实例,各自执行自己的动作。在我的blog列表,导航条的生成。。几乎用得到多项数据的地方就要用原型模式。 6.责任链模式 7.中介者模式 8.观察者模式 食堂里厨房最远的窗口没熬白菜了,要告诉厨房,快送过来。 责任链模式:一个窗口一个窗口地传话,一直传到食堂,食堂一看不妙,赶快做好送过去。 中介者模式:专门派一个人负责传话,任何窗口没菜了,就要这个人赶快去厨房催。 观察者模式:厨房那边派一个盯着,看哪个窗口没菜了就开始 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: swish max 做火焰效果下一篇: [原创]谈谈关于FLASH发布
关于Flash中oop的设计模式的所有评论