Flash中oop的设计模式
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-13
以要求食堂的师傅,专门开一个窗口,专门在做好的菜里多加些辣椒。 我在自己的站里运用了桥接模式:所有的影片都继承自我定义的BasicMovie 类(BasicMovie继承自MovieClip类),但是在四个下级栏目的影片里,需要定义相同的方法和事件来响应消息,BasicMovie没有这些函数,不符合要求,这时候,在四个影片里都写一遍是愚蠢的,我又写了一个SubTemplateMovie类继承自BaseMovie,里面加进一些通用的方法,然后四个下级模板影片都继承它,这样大大简化了后期开发。 BasicMovie.as //基类影片 /所有影片的原始类,一切影片的父类都继承此类而来 class BaseMovie extends MovieClip { var isLocked:Boolean; //初始类开始影片函数 var MovieStartFunction:Function; //初始类影片主功能函数 var MovieMainFunction:Function; //初始类结束影片函数 var MovieEndFunction:Function; var GlobalParam //初始类构造函数 function BaseMovie() { } // //发送消息 function SendMsg(Msg:String, Mc:MovieClip) { _root.objCore.objMessageMap.SendMessage(Msg, Mc); } //添加消息映射 function UpdateMessage(Msg:String, MsgMapFunction:Function, ArrayParam, obj, IsMultiUsed) { _root.objCore.objMessageMap.UpdateMessageMap(Msg, MsgMapFunction, ArrayParam, obj, IsMultiUsed); } //删除消息映射 function DeleteMessage(obj) { _root.objCore.objMessageMap.DeleteMessageMap(obj); } function GetGlobalParam() { GlobalParam=_root.objCore.strucGlobalParam; } } SubTemplateMovie.as //下级模板影片类 class SubTemplateMovie extends BaseMovie { var MovieRemoveFunction:Function; function SubTemplateMovie() { this.stop(); MovieStartFunction = function () { Lock(); this.play(); }; MovieEndFunction = function () { Lock(); this.play(); }; MovieRemoveFunction = function () { this.stop(); SendMsg("SUB_TEMPLATE_REMOVED", this); _parent.unloadMovie(); }; MovieMainFunction = function () { stop(); SendMsg("SUB_TEMPLATE_OPEN", this); }; UpdateMessage("LOADING_BAR_OVER", MovieStartFunction, null, this, false); UpdateMessage("BACK_TO_INDEX", MovieEndFunction, null, this, false); } }注(关于消息映射机制看 责任链模式) 10.适配器模式(Adapter) 我要一碗汤,但是只有纸饭盒,还没勺,所以食堂的师傅给了我一次性的汤碗和勺,这叫适配器。 适配器解决的是某一个类的对外接口不合用的问题,可能是参数或者返回值类型不符等问题造成的,这时候我们需要在工作对象和这个类之间加一层间接的层次。 这个模式我在底层的数据交换层用过。我说过,flash和asp.net之间交换数据全以xml为载体。返回xml在底层只有三层,数据库操作,数据操作,数据显示,由数据操作层返回给数据显示层一个xml字符串就可以了。然后我就遇到一个小问题,在另一方面,我需要提交数据到数据库,也是提交一个xml字符串,但是我需要数据库里对应的表的数据集的xml表现形式的xsd验证!(一口气说完,差点没憋死)。就是说我至少需要取出这个表里的一条记录,问题在于,我封装的类从来只返回xml,没有返回xsd的。解决办法就是适配器,新建一个项目,加了一层专用于获得xml验证格式,这样就完成了不同接口之间的转换。 备注:适配器和桥接很象,都是在已有类不符合要求的时候,加入一层间接的元素以达到目的。不同的是适配器是解决不兼容接口之间的转换,桥接一般不涉及这个问题,只是完成一个一对多的转换。 11.外观模式(Facade) 每天都要去食堂,每个人去不同的窗口吃不同的菜,很累,今天全寝室推举猴子去打饭: 你 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: swish max 做火焰效果下一篇: [原创]谈谈关于FLASH发布
关于Flash中oop的设计模式的所有评论