桥接模式之多元化类之间的实例化调用实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>桥接模式之多元化类之间的实例化调用</title>
    <script type="text/javascript">
    //多维类的声明和调用(有点像类职责链模式)
    //这些功能类也可看作是功能模块的抽象层
    //运动类模块
    var Speed = function(x,y){
        this.x = x;
        this.y = y;
    }
    Speed.prototype.run = function(){
        console.log('跑起来');
    }
    //着色类模块
    function Color(cl){
        this.color = cl;
    }
    Color.prototype.draw = function(){
        console.log('绘制颜色');
    }
    //变形类模块
    function Shape(sp){
        this.shape = sp;
    }
    Shape.prototype.change = function(){
        console.log('改变形状');
    }
    //说话类模块
    function Speek(wd){
        this.word = wd;
    }
    Speek.prototype.say = function(){
        console.log('我可以说话');
    }
    //具体实现层的几个类,在功能上调用上面的抽象类
    //接下来我们想创建一个球类,可以运动,可以着色
    function Ball(x,y,c){
        this.speed = new Speed(x,y);//实现运动单元
        this.color = new Color(c);//实现着色单元
    }
    Ball.prototype.init = function(){
        this.speed.run();  //实现运动方法
        this.color.draw(); //实现着色方法
    }
    //同样我们想创造一个人类,他可以运动可以说话
    function Person(x,y,f){
        this.speed = new Speed(x,y);
        this.speek = new Speek(f);
    }
    Person.prototype.init = function(){
        this.speed.run();
        this.speek.say();
    }
    //最后我们想创造一个精灵类,他可以运动可以说话可以着色可以变形
    function Spirite(x,y,c,f,s){
        this.speed = new Speed(x,y);
        this.speek = new Speek(f);
        this.color = new Color(c);
        this.shape = new Shape(s);
    }
    Spirite.prototype.init = function(){
        this.speed.run();
        this.speek.say();
        this.color.draw();
        this.shape.change();
    }
    //测试用例
    var p = new Person(10,12,16);
    p.init();
    //本例已经通过验证
    </script>
</head>
<body>
</body>
</html>

js原生设计模式——13桥接模式(相同业务逻辑抽象化处理的职责链模式)的更多相关文章

  1. C#设计模式之二十一职责链模式(Chain of Responsibility Pattern)【行为型】

    一.引言   今天我们开始讲"行为型"设计模式的第八个模式,该模式是[职责链模式],英文名称是:Chain of Responsibility Pattern.让我们看看现实生活中 ...

  2. 责任链模式 职责链模式 Chain of Responsibility Pattern 行为型 设计模式(十七)

    责任链模式(Chain of Responsibility Pattern) 职责链模式 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系 将这些对象连接成一条链,并沿着这 ...

  3. C#设计模式之二十职责链模式(Chain of Responsibility Pattern)【行为型】

    一.引言 今天我们开始讲“行为型”设计模式的第八个模式,该模式是[职责链模式],英文名称是:Chain of Responsibility Pattern.让我们看看现实生活中的例子吧,理解起来可能更 ...

  4. C#设计模式学习笔记:(20)职责链模式

    本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/8109100.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第八个模式--职 ...

  5. Java设计模式(二十一):职责链模式

    职责链模式(Chain Of Responsibility Pattern) 职责链模式(Chain Of Responsibility Pattern):属于对象的行为模式.使多个对象都有机会处理请 ...

  6. 深入浅出设计模式——职责链模式(Chain of Responsibility Pattern)

    模式动机 职责链可以是一条直线.一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求.链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并使请求沿着链传 ...

  7. javascript设计模式——职责链模式

    前面的话 职责链模式的定义是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.职责链模式的名字非常形象,一 ...

  8. C#设计模式系列:职责链模式(Chain of Responsibility)

    1.职责链模式简介 1.1>.定义 职责链模式是一种行为模式,为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求.将这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对 ...

  9. java设计模式-----18、职责链模式

    概念: Chain of Responsibility(CoR)模式也叫职责链模式.责任链模式或者职责连锁模式,是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的 ...

随机推荐

  1. 获取map中的一个value值以及遍历map获得map里所有key、value的值

    前言: 1.声明一个map: Map map = new HashMap();2.向map中放值,注意:map是key-value的形式存放的.如: map.put(”sa”,”dd”); 3.从ma ...

  2. OpenGL学习-------绘制简单的几何图形

    本次课程所要讲的是绘制简单的几何图形,在实际绘制之前,让我们先熟悉一些概念. 一.点.直线和多边形我们知道数学(具体的说,是几何学)中有点.直线和多边形的概念,但这些概念在计算机中会有所不同.数学上的 ...

  3. Source

    转载自:http://blog.csdn.net/u014084081/article/details/44617707 Guide iOS Developer Library 教程 Ray Wend ...

  4. Codeforces Round #368 (Div. 2)D. Persistent Bookcase DFS

    题目链接:http://codeforces.com/contest/707/my 看了这位大神的详细分析,一下子明白了.链接:http://blog.csdn.net/queuelovestack/ ...

  5. ural1650 Billionaires

    Billionaires Time limit: 3.0 secondMemory limit: 64 MB You probably are aware that Moscow holds the ...

  6. [算法] dijkstra单源无负权最小路径算法

    #include <stdio.h>#include <stdlib.h>#include <string.h> #define INF 1000000#defin ...

  7. 解决phpcms V9缩略图模糊的方法

    解决V9缩略图模糊/libs/classes/image.class.php注释掉else   imagecopyresized($thumbimg, $srcimg, 0, 0, $psrc_x,  ...

  8. HTML学习(八)列表和块

    无序列表无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记.无序列表始于 <ul> 标签.每个列表项始于 <li>.<ul type=“”> ...

  9. doxygen 生成源码文档

    使用doxygen 生成源代码的文档是相当方便的,本文就简单整理下doxygen的使用说明 1. 安装 关于安装的问题不做特殊的说明,这里直接使用命令安装, 源码安装不做介绍 ubuntu: sudo ...

  10. iOS开发——单例模式

    一.用if语句实现单例 1.在.h文件中 #import <Foundation/Foundation.h> @interface YYTRequestTool : NSObject +( ...