封装类与封装函数

目录结构

src/

├── utils/

│   ├── test.js

│   ├── Calculator.js

├── views/

│   ├── Home.vue
├── App.vue

共同点:模块导出与模块引入

封装函数

场景

简单、轻量级和性能敏感的场景,适合快速开发和维护。

  1. 可维护性:相关的功能和数据集中在一个单元内,使得修改和维护代码更加容易,降低了修改一处代码可能引发的连锁错误风险
  2. 可读性:封装将复杂的逻辑隐藏在内部,通过清晰的接口提供简洁的使用方式,提高了代码的可读性
  3. 灵活性:封装可以通过修改内部实现而不影响外部调用,为代码的扩展和修改提供了灵活性。

  1. 缺乏封装性:函数封装难以将相关的功能和数据组织在一起,代码的模块化程度较低
  2. 扩展性差:函数封装的代码在扩展时可能需要大量修改,不如类封装灵活

实战

// utils-test.js
// 定义一个函数来计算两个数的和
export function addNumbers(a, b) {return a + b;
}
//home.vue
<template><h1>调用封装函数,5+3的结果:{{ result }}</h1>
</template><script setup>
import { addNumbers } from '引入路径'
import { onMounted, ref } from "vue";const result =ref(null);
onMounted(() => {console.log("组件挂载,开始执行函数");result.value=addNumbers(5, 3); //页面输出  调用封装函数,5+3的结果:8
})</script><style></style>

实战效果

封装类:

场景

高度封装、模块化和面向对象编程的场景,适合处理复杂的功能和数据

  1. 数据隐藏:封装类可以将类的内部数据成员设为私有,只通过公共方法进行访问和修改,实现数据的隐藏和保护。
  2. 代码组织和复用:将相关的功能和数据组织在一个类中,便于代码的管理和复用
  3. 解耦和独立性:封装类使得类与外部的依赖减少,提高了类的独立性,降低了不同部分代码之间的耦合度。
  4. 接口规范:封装类通过定义明确的公共接口,规范了外部与类的交互方式。

  1. 复杂性:学习难度也高编写过渡抽象代码难以理解和维护。
  2. 过度设计:可能会导致代码过于复杂冗余,反而降低了可维护性。

实战

// Calculator.js
// 定义一个类来计算两个数的和
class Calculator {constructor() {// 可以在这里初始化一些属性}// 定义一个方法来计算两个数的和addNumbers(a, b) {return a + b;}
}
export default Calculator;
//home.vue
<template><h1>调用封装类,5+3的结果:{{ result }}</h1>
</template><script setup>
import Calculator from '引入路径'
import { onMounted, ref } from "vue";const result =ref(null);
onMounted(() => {const calculator = new Calculator();result.value=calculator.addNumbers(5, 3); //页面输出  调用封装类,5+3的结果:8
})</script><style></style>

实战效果

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

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

相关文章

【Bug】el-date-picker组件时间差

这个组件默认是国际标准时间 2024-11-27T07:56:37.000Z 表示的是 UTC 时间。如果你当前所在的时区是 UTC8&#xff08;例如中国&#xff09;&#xff0c;那么这个时间实际上是比你选择的时间早 8 个小时 T表示分隔符&#xff0c;Z表示的是UTC 解决&#xff1a;给el-date-pic…

【STM32学习】TB6612FNG驱动芯片的学习,驱动电路的学习

目录 1、TB6612电机驱动芯片 1.1如下是芯片的引脚图&#xff1a; 1.2如下图是电机的控制逻辑&#xff1a; 1.3MOS管运转逻辑 1.3典型应用电路 2、H桥驱动电路 2.1、单极模式 2.2、双极模式 2.3、高低端MOS管导通条件 2.4、H桥电路设计 2.5、自举电路 3、电气特性 3…

Qt | TCP服务器实现QTcpServer,使用线程管理客户端套接字

点击上方"蓝字"关注我们 01、QTcpServer >>> QTcpServer 是 Qt 网络模块中的一个类,用于实现TCP服务器。它允许创建一个服务器,可以接受来自客户端的连接。QTcpServer 是事件驱动的,这意味着它将通过信号和槽机制处理网络事件。 常用函数 构造函数: QT…

Level DB --- Arena

class Arena 是Level DB中的重要数据结构&#xff0c;它是一个简易的内存池管理类。 内存资源管理模型 Level DB 内存管理模型如图1所示&#xff0c;在内存分配上&#xff0c;Level DB每次预先申请KBlock大小的资源&#xff0c;新分配的内存请求会预先在last KBlocak的资源上…

Rsa加解密 + 签名验签

Rsa加解密 概述聚合算法名称&#xff08;用于创建加密器&#xff09;基本概念填充方式分块加密 基本使用生成密钥加解密创建加密器设置模式&#xff08;加密&#xff09;、公钥对明文加密&#xff0c;并对结果进行Base64编码对以上结果&#xff0c;进行解密 设置模式&#xff0…

docker安装seata

1.准备数据库表 -- the table to store GlobalSession data CREATE TABLE IF NOT EXISTS global_table (xid VARCHAR(128) NOT NULL,transaction_id BIGINT,status TINYINT NOT NULL,application_id VARC…

达梦数据库常用指令都是工作中常用的

达梦数据库连接配置文件名称 cd /etc/dm_svc.conf查询 sql 日志记录是否开启&#xff1a;0 关闭&#xff0c;1/2/3开启); select SF_GET_PARA_VALUE(1,SVR_LOG)union ALL select SF_GET_PARA_VALUE(2,SVR_LOG);关闭 sql 日志记录功能 call SP_SET_PARA_VALUE(1,SVR_LOG,0);开…

大语言模型---Dropout 的定义;Dropout 减少过拟合的原因;Dropout 的实现

文章目录 1. Dropout 的定义2. Dropout 减少过拟合的原因3. Dropout 的实现 1. Dropout 的定义 Dropout 是一种简单而有效的正则化技术&#xff0c;通过在每次训练迭代中随机丢弃&#xff08;即屏蔽&#xff09;一部分神经元&#xff0c;强制模型在没有某些特定神经元参与的情…

MVC core 传值session

MVC Entity Framework MVC Core session 》》 需要添加 Session 服务 和 Session中间件 builder.Services.AddSession(); app.UseSession(); 》》》控制器中 public IActionResult Privacy(){HttpContext.Session.SetString("key", "123");return View(…

电气火灾式故障电弧探测器在某医院照明回路中的应用

安科瑞 Acrel-Tu1990 摘要&#xff1a;电气火灾式故障电弧探测器&#xff08;以下简称“探测器”&#xff09;能够对连接至其的电路中的故障电弧&#xff08;包括故障并联电弧和故障串联电弧&#xff09;进行精确检测。一旦探测到可能导致火灾的故障电弧&#xff0c;探测器将启…

RNN And CNN通识

CNN And RNN RNN And CNN通识一、卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;1. 诞生背景2. 核心思想和原理&#xff08;1&#xff09;基本结构&#xff1a;&#xff08;2&#xff09;核心公式&#xff1a;&#xff08;3&#xff09;关…

大数据营销

大数据营销是一个热门的大数据应用。对于多数企业而言&#xff0c;大数据营销的主要价值源于以下几个方面。 市场预测与决策分析支持 数据对市场预测及决策分析的支持&#xff0c;早就在数据分析与数据挖掘盛行的年代被提出过。沃尔玛著名的“啤酒与尿布”案例就是那个时候的杰…

手机控制载货汽车一键启动无钥匙进入广泛应用

移动管家载货汽车一键启动无钥匙进入手机控车系统‌&#xff0c; 该系统广泛应用于物流运输、工程作业等货车场景&#xff0c;为车主提供了高效、便捷的启动和熄火解决方案&#xff0c;体现了科技进步对物流行业的积极影响‌ 核心功能‌&#xff1a;简化启动流程&#xff0c;提…

SSE基础配置与使用

什么是 Server-Sent Events (SSE) **Server-Sent Events (SSE) **是一种轻量的服务器向客户端推送消息的机制&#xff0c;基于 HTTP 协议实现单向通信&#xff0c;适用于需要实时更新的场景。 与 WebSocket 不同&#xff0c;SSE 只允许服务器向客户端发送数据&#xff0c;因此…

基于python爬虫的智慧人才数据分析系统

废话不多说&#xff0c;先看效果图 更多效果图可私信我获取 源码分享 import os import sysdef main():"""Run administrative tasks."""os.environ.setdefault(DJANGO_SETTINGS_MODULE, 智慧人才数据分析系统.settings)try:from django.core.m…

聊聊Flink:这次把Flink的触发器(Trigger)、移除器(Evictor)讲透

一、触发器(Trigger) Trigger 决定了一个窗口&#xff08;由 window assigner 定义&#xff09;何时可以被 window function 处理。 每个 WindowAssigner 都有一个默认的 Trigger。 如果默认 trigger 无法满足你的需要&#xff0c;你可以在 trigger(…) 调用中指定自定义的 tr…

用Python做数据分析环境搭建及工具使用(Jupyter)

目录 一、Anaconda下载、安装 二、Jupyter 打开 三、Jupyter 常用快捷键 3.1 创建控制台 3.2 命令行模式下的快捷键 3.3 运行模式下快捷键 3.4 代码模式和笔记模式 3.5 编写Python代码 一、Anaconda下载、安装 【最新最全】Anaconda安装python环境_anaconda配置python…

基于51单片机的电子秤设计

本设计以STC89C52RC芯片作为主要的控制芯片&#xff1b;通过电阻应变式传感器实现物品的测量功能&#xff1b;通过HX711型A/D转换器完成模拟信号到数字信号之间的转换&#xff1b;矩阵按键实现单片机复位、物品单价输入等系列操作&#xff1b;LCD1602液晶显示屏可以实现测量结果…

ip租期到了

当IP租约到期后&#xff0c;会发生以下过程&#xff1a; 租约到期通知&#xff1a;在租约到期之前&#xff0c;DHCP客户端通常会尝试续租其IP地址。如果客户端仍然活跃并且希望继续使用相同的IP地址&#xff0c;它会向DHCP服务器发送一个DHCP请求&#xff08;DHCPREQUEST&#…

spring boot如何进行安全测试和渗透测试?

进行安全测试和渗透测试是确保应用程序安全的重要步骤。以下是一些常见的方法和工具&#xff0c;下面小编给大家编写了一个安全测试方法 文章目录 安全测试1. **静态应用安全测试 (SAST)**2. **动态应用安全测试 (DAST)**3. **依赖检查** 渗透测试1. **规划与侦察**2. **漏洞扫…