设计模式之其他设计模式(7-1)

简介: 设计模式之其他设计模式(7-1)

1、原型模式

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 自己敲一下
// 原型模式
const prototype = {
  getName: function () {
    return this.first + " " + this.last;
  },
  say: function () {
    alert("say");
  },
};
// 基于原型创建 X
let x = Object.create(prototype);
x.first = "A";
x.last = "B";
alert(x.getName());
x.say();
// 基于原型创建 Y
let y = Object.create(prototype);
y.first = "C";
y.last = "D";
alert(y.getName());
y.say();
复制代码
  • 结果展示 弹出预期的结果

网络异常,图片无法展示
|

网络异常,图片无法展示
|

2、桥接模式

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 自己 敲一遍
// 桥接模式
class Color {
  constructor(name) {
    this.name = name;
  }
}
class Shap {
  constructor(name, color) {
    this.name = name;
    this.color = color;
  }
  draw() {
    console.log(`${this.color.name} ${this.name}`);
  }
}
const red = new Color("red");
const yellow = new Color("yellow");
const circle = new Shap("circle", red);
circle.draw();
const triangle = new Shap("triangle", yellow);
triangle.draw();
复制代码
  • 结果展示

网络异常,图片无法展示
|

网络异常,图片无法展示
|

3、组合模式

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

4、享元模式

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

5、策略模式

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 自己敲一下

网络异常,图片无法展示
|

  • 结果 ok的

网络异常,图片无法展示
|

  • 策略模式 更改一下
// 策略模式 优化一下
class OrdinaryUser {
  buy() {
    console.log("普通 用户购买");
  }
}
class MemuberUser {
  buy() {
    console.log("memuber 用户购买");
  }
}
class VipUser {
  buy() {
    console.log("vip 用户购买");
  }
}
let u1 = new OrdinaryUser();
u1.buy();
let u2 = new MemuberUser();
u2.buy();
let u3 = new VipUser();
u3.buy();
复制代码

网络异常,图片无法展示
|

网络异常,图片无法展示
|

6、模版方法 模式

  • 常用思想

网络异常,图片无法展示
|

7、职责链 模式

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 自己敲一下
// 职责链 模式
class Action {
  constructor(name) {
    this.name = name;
    this.nextAction = null;
  }
  setNextAction(action) {
    this.nextAction = action;
  }
  handle() {
    console.log(`${this.name} 审批`);
    if (this.nextAction != "null") {
      this.nextAction.handle();
    }
  }
}
// 测试代码
let a1 = new Action("组长");
let a2 = new Action("经理");
let a3 = new Action("总监");
a1.setNextAction(a2);
a2.setNextAction(a3);
a1.handle();
复制代码
  • 结果

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|




相关文章
|
供应链 芯片
电商黑话之 spu sku
SPU = Standard Product Unit (标准化产品单元),SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的基本特性。因此在电商类产品库建立时,通常会根据SPU来建立。
电商黑话之 spu sku
|
机器学习/深度学习 人工智能 前端开发
边缘云系统的灵活可变速率图像特征压缩——论文阅读
本文提出一种面向边缘云系统的灵活可变速率图像特征压缩方法,通过联合优化率-精度-复杂度三重权衡,实现单模型多比特率自适应。该方法引入速率参数嵌入与条件归一化机制,在ResNet、ConvNeXt等架构上验证了高效性,显著优于固定速率方案,兼顾低延迟与高精度,适用于资源受限的视觉任务。
508 13
边缘云系统的灵活可变速率图像特征压缩——论文阅读
|
JSON 小程序 前端开发
小程序长列表优化实践
小程序如何实现长列表优化呢
小程序长列表优化实践
|
人工智能 分布式计算 Cloud Native
向量化执行引擎框架 Gluten 宣布正式开源,并亮相 Spark 技术峰会
向量化执行引擎框架 Gluten 宣布正式开源,并亮相 Spark 技术峰会
1346 0
向量化执行引擎框架 Gluten 宣布正式开源,并亮相 Spark 技术峰会
|
JavaScript API
Intersection Observer 详解
在一些场景下,尤其是在移动端,我们需要判断元素是否进入用户视口(viewport),来进行以下处理,例如无限滚动,当底部元素进入视口之后加载下一页内容。
1043 0
|
机器学习/深度学习 运维 资源调度
基于 Flink 构建 CEP 引擎的挑战和实践
奇安信集团作为一家网络安全公司是如何基于 Flink 构建 CEP 引擎实时检测网络攻击?其中面临的挑战以及宝贵的实践经验有哪些?本文主要内容分为以下四个方面: 1. 背景及现状 2. 技术架构 3. 产品及运维 4. 未来发展与思考
基于 Flink 构建 CEP 引擎的挑战和实践
色相、明度及饱和度
(色彩)色相、明度及饱和度 2014-09-02  大东村人                                             在刚开始拍照时,很多初学者像幼儿一样,常会被鲜艳的颜色所吸引,但摄影上的色彩,真的只是把对比度拉高,饱和度调到最高点,这么简单而已吗?下面的内容将探讨色相、明度及饱合度在摄影上的运用。
1604 0
|
8天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
7296 12

热门文章

最新文章