封装类与封装函数

目录结构

src/

├── utils/

│ ├── test.js

│ ├── Calculator.js

├── views/

│ ├── Home.vue

├── App.vue

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

封装函数

场景

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

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

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

实战

javascript 复制代码
// utils-test.js
// 定义一个函数来计算两个数的和
export function addNumbers(a, b) {
    return a + b;
}
javascript 复制代码
//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. 过度设计: 可能会导致代码过于复杂冗余,反而降低了可维护性。

实战

javascript 复制代码
// Calculator.js
// 定义一个类来计算两个数的和
class Calculator {
    constructor() {
        // 可以在这里初始化一些属性
    }

    // 定义一个方法来计算两个数的和
    addNumbers(a, b) {
        return a + b;
    }
}
export default Calculator;
javascript 复制代码
//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>

实战效果

相关推荐
云游云记3 分钟前
php 网络请求工具全解:cURL 与 Guzzle 总结
开发语言·网络·php
m0_7482299912 分钟前
帝国CMS后台搭建全攻略
java·c语言·开发语言·学习
weixin_4624462318 分钟前
PaddleX 3.2 人脸识别实战:自定义人脸库 + CartoonFace 官方案例 Top-K 识别完整指南
开发语言·r语言
We་ct23 分钟前
LeetCode 15. 三数之和:排序+双指针解法全解析
前端·算法·leetcode·typescript
美狐美颜SDK开放平台23 分钟前
直播场景下抖动特效的实现方案:美颜sdk开发经验分享
前端·人工智能·美颜sdk·直播美颜sdk·视频美颜sdk
Testopia34 分钟前
走一遍 AI 学习之路 —— AI实例系列说明
开发语言·人工智能·python
Tony Bai36 分钟前
【分布式系统】11 理论的试金石:用 Go 从零实现一个迷你 Raft 共识
开发语言·后端·golang
Beginner x_u37 分钟前
JavaScript 原型、原型链与原型继承的核心机制解析
开发语言·javascript·原型模式·原型原型链
离离茶37 分钟前
【笔记1-11】Qt 关闭QToolbar的拓展菜单
开发语言·笔记·qt
曹牧39 分钟前
C#:窗体构造函数无法引用窗体控件
开发语言·c#