前端设计模式应应用场景

前端设计模式应应用场景

  • 创建型模式(Creational Patterns)
    • 工厂模式
    • 单例模式
    • 原型模式
  • 行为型模式(Behavioral Patterns)
    • 策略模式
    • 观察者模式/发布订阅模式
    • 迭代器模式
    • 状态模式
  • 结构型模式(Structural Patterns)
    • 装饰器模式
    • 代理模式

创建型模式(Creational Patterns)

处理对象的创建,根据实际情况使用合适的方式创建对象。常规的对象创建方式可能会导致设计上的问题,或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决问题。
顾名思义,这些模式都是用来创建实例对象的。

工厂模式

工厂模式就是根据不用的输入返回不同的实例

在Vue在路由创建模式中,也多次用到了工厂模式

export default class VueRouter {constructor(options) {this.mode = mode    // 路由模式switch (mode) {   // 简单工厂case 'history':  this.history = new HTML5History(this, options.base)breakcase 'hash':      this.history = new HashHistory(this, options.base, this.fallback)breakcase 'abstract':   this.history = new AbstractHistory(this, options.base)breakdefault:}}
}

单例模式

保证一个类只有一个实例,并提供一个访问它的全局访问点。也就是说,第二次使用同一个类创建新对象的时候,应该得到与第一次创建的对象完全相同的对象。

Vuex

原型模式

用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里

行为型模式(Behavioral Patterns)

用于识别对象之间常见的交互模式并加以实现,增加了这些交互的灵活性。

策略模式

其定义一系列的算法,把它们一个个封装起来,并且使它们可以互相替换

策略模式经常用在表单验证的场景。Element UI 的 Form 表单 具有表单验证功能,用来校验用户输入的表单内容

观察者模式/发布订阅模式

  • 观察者模式(Observer Pattern)定义了一种一对多的关系,让多个订阅者对象同时监听某一个发布者,或者叫主题对象,这个主题对象的状态发生变化时就会通知所有订阅自己的订阅者对象,使得它们能够自动更新自己。

  • 发布订阅模式别名,非常形象地诠释了观察者模式里两个核心的角色要素——发布者和订阅者。
    发布-订阅模式有一个调度中心

在这里插入图片描述

EventBus

迭代器模式

提供一种方法 , 顺序访问 集合对象 中的 各个元素 , 而 不暴露 该对象 的内部表示 ;

状态模式

对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。

结构型模式(Structural Patterns)

结构型从功能上来说就是给元素添加行为的,目标是优化结构的实现方式
通过识别系统中组件间的简单关系来简化系统的设计。

装饰器模式

为对象添加新功能,不改变其原有的结构和功能。

代理模式

使用者无权访问目标对象,中间加代理,通过代理做授权和控制。

ES6 Proxy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/161646.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

填充颜色游戏

无语死了这题。 题目描述 小明最近迷上下面一款游戏。游戏开始时, 系统将随机生成一个 N N 的 正方形棋盘, 棋盘的每个格子都由六种颜色中的一种绘制。在每个步骤中, 玩家选择一种颜色, 并将与左上角连接的所有网格更改为该特…

树控件的使用

目录 1、修改树控件的基础属性: 2、准备图标 : (1)、ico后缀的图片放入当前文件路径的rc中 (2)、在Icon中添加资源,导入图片 (3)、准备HICON图标 (4&am…

音频处理到雷达系统:滤波组的多领域应用 | 百能云芯

在电子元器件和电路设计领域,滤波组(Filter Bank)是一个关键概念,它用于处理和过滤信号,以满足各种应用的需求。云芯将带您深入研究滤波组在元器件中的应用,包括其工作原理、不同类型以及在通信、音频处理和…

qt 读取txt文本内容时,中文乱码

项目场景: 项目中,需要在TF卡中做类似txt阅读器的功能,因为app是在嵌入式系统下运行的,发现当读取txt的文本格式为ANSI时,中文的显示是乱码,故记录下解决方法 问题解决 中文乱码问题还是涉及到编码问题&…

【Unity】Unity开发微信小游戏(一)准备和了解工作

一、所需工具 0.Unity小游戏版本 如不使用此版本,则无法搜索到 InstantGame package 1.Unity插件:InstantGame package 此插件用于处理项目中的贴图、音频、网格、动画、场景等资源文件,保证小程序包体不会过大。 插件可以关联UOS服务&am…

百度智能云推出,国内首个大模型全链路生态支持体系

在10月17日举行的百度世界2023上,百度智能云宣布,百度智能云千帆大模型服务平台已服务17000多家客户,覆盖近500个场景。 同时,新的企业和开发者还正在不断地涌入千帆,大模型调用量高速攀升。平台上既有年龄仅14岁的小…

PAM从入门到精通(五)

接前一篇文章:PAM从入门到精通(四) 本文参考: 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构: 更加形象的形式: 五、主要函数详解 3. pam_set_item 概述: 设置…

【定时开关机】windows 10 如何设置定时开关机

一、需求 二、场景 三、思路 四、实现 A. 设置来电开机 B. 设置及定时关机 一、需求 需要一台 win 10 的电脑在工作时间内自动开关机(早 8:30 - 晚:6:05) 二、场景 开机:早 8:30 关机:晚 6:05 三、思路 【开机…

目标跟踪数据集分享

360VOT: A New Benchmark Dataset for Omnidirectional Visual Object Tracking 360VOT 是一个新的大规模全景追踪基准数据集,旨在为全景视觉物体追踪提供支持。这个数据集包含了 120 个序列,总计超过 11.3 万张高分辨率帧,采用等距投影。追踪…

new Object()到底占用几个字节

Java内存模型 对象内存中可以分为三块区域:对象头(Header),实例数据(Instance Data)和对齐填充(Padding),以64位操作系统为例(未开启指针压缩的情况)Java对象布局 如下图所示: 其中对象头中的Mark Word中的详细信息在文章synchr…

李宏毅生成式AI课程笔记(持续更新

01 ChatGPT在做的事情 02 预训练(Pre-train) ChatGPT G-Generative P-Pre-trained T-Transformer GPT3 ----> InstructGPT(经过预训练的GPT3) 生成式学习的两种策略 我们在使用ChatGPT的时候会注意到,网站上…

JVM 垃圾回收机制(可达性分析、引用计数)

目录 1 什么是垃圾2 为什么需要回收3 哪些对象被判定为垃圾呢3.1 引用计数法3.2 可达性分析算法:GC Roots根 1 什么是垃圾 垃圾是指在运行程序中没有任何指针指向的对象,就是需要被回收的。 2 为什么需要回收 执行程序会不断地分配内存空间&#xff0c…

Windows安装SNMP服务

windows10安装SNMP服务 打开计算机的设置–应用–应用和功能–可选功能–点击加号添加功能,添加以下两个功能: windows server安装SNMP服务 搜索打开服务器管理器,点击功能–添加功能,勾选SNMP服务,点击下一步,等待安装完成 按win+R快捷键,运行service.msc,在服务中将…

与 Harbor 构建高效的镜像加速工作流

镜像是容器的基础,如今有很多用户在实践使用 Harbor 作为镜像存储与分发方案,本文介绍了 Harbor 在支持镜像加速方面的能力,以及 Nydus 这种改进的镜像格式,用于解决镜像在网络,存储,端到端可信方面的问题。…

GPT绘制流程图咒语

【咒语】下面是我的一篇论文选取部分,为了让读者更好理解,我准备画一张图,请你阅读后为我设计一下这个图应该怎么画,更有说服力,更容易理解 论文片段: 多模态数据融合研究的基础在于有效的数据采集。首先&a…

git学习——第4节 时光机穿梭

我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed version control system. Git is free software. 现在&…

Spring源码解析——事务增强器

正文 上一篇文章我们讲解了事务的Advisor是如何注册进Spring容器的,也讲解了Spring是如何将有配置事务的类配置上事务的,实际上也就是用了AOP那一套,也讲解了Advisor,pointcut验证流程,至此,事务的初始化工…

CAD图形导出为XAML实践

文章目录 一、前言二、方法与实践2.1 画出原图,借第三方工具导出至指定格式2.2 CAD导出并转换2.3 两种方法的优劣2.3.1 直接导出代码量大2.3.2 导入导出需要调参 三、总结 一、前言 上位机通常有一个设备/场景界面,该界面用于清晰直观地呈现设备状态。 …

Yakit工具篇:子域名收集的配置和使用

简介(来自官方文档) 子域名收集是指通过各种技术手段,收集某个主域名下所有的子域名列表。子域名是指在主域名前面添加一级或多级名称的域名。例如,对于主域名example.com,其子域名可以是www.example.com、mail.example.com、blog.example.c…

触控笔哪个牌子好用?主动电容笔和被动电容笔的区别

主动式电容笔和被动式电容笔两者最大的不同之处在于主动式电容笔的应用范围更大,可以兼容各种不同的电容屏幕。随着人们对其认识的不断深入,其应用范围也在不断扩大。而且国产的主动式电容笔,也在不断的更新换代,重力越来越多&…