zoukankan      html  css  js  c++  java
  • 桥接模式(Bridge)

    菜太淡,不合有些人的胃口,所以要求食堂的师傅,专门开一个窗口,专门在做好的菜里多加些辣椒。

    我在自己的站里运用了桥接模式:所有的影片都继承自我定义的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, nullthisfalse);
            UpdateMessage(
    "BACK_TO_INDEX", MovieEndFunction, nullthisfalse);
        }
    }

    注(关于消息映射机制看 责任链模式)

  • 相关阅读:
    centos安装docker-compose
    CentOS安装Docker
    【JPA】【笔记】GenerationType四中类型
    【maven】多个子项目、父项目之间的引用问题【转】
    一个页面多个echarts图表自适应
    jQuery操作单选按钮(radio)用法
    CASE WHEN .... THEN END 的用法
    遮罩层
    oracle 数据库的字段的增删改主键设定删除
    自动获取ROI-用于SFR算法的ROI获取
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/1608664.html
Copyright © 2011-2022 走看看