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);
        }
    }

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

  • 相关阅读:
    第二题
    第一题
    biancheng
    用泰勒展开式计算sin
    矩阵求和
    1
    ti
    实验10
    实验9
    实验8
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/1608664.html
Copyright © 2011-2022 走看看