当前位置: 首页 > news >正文

设计模式面试题

        :通常是为了解决两个不兼容接口之间的兼容问题。

 如果你有一个已经工作的两相插座(即有两个插口的设备),但是你买了一个需要三相插座(即有三个插口的设备)的电器,现在用户想使用新的三相插座来使用三相的洗衣机和二相插座的电视机,

// 第一步:定义目标接口
// 定义三相设备的接口
class ThreePhaseDevice {
    usePower() {
        console.log("使用三相电源");
    }
}

// 第二步:适配者类
// 定义两相插座的接口
class TwoPhaseSocket {
    plugIn() {
        console.log("两相插座已连接");
    }
}

// 第三步:适配器类
// 创建适配器类,使三相设备能在两相插座上工作
class ThreePhaseToTwoPhaseAdapter extends TwoPhaseSocket {
    constructor(device) {
        super();
        this.device = device; // 持有对三相设备的引用
    }
 
    plugIn() {
        super.plugIn(); // 调用两相插座的plugIn方法
        this.device.usePower(); // 调用三相设备的usePower方法
    }
}

// 第四步:客户端代码
// 创建三相设备实例和适配器实例,然后使用适配器在两相插座上工作
const device = new ThreePhaseDevice();
const adapter = new ThreePhaseToTwoPhaseAdapter(device);
adapter.plugIn(); // 输出: 两相插座已连接,使用三相电源

单例模式

简述在现实生活中,居民身份证号码具有唯一性,居民可以申请身份证号码或补办身份证号码(还是使用原来的身份证号码,不会产生新的号码)。我们可以使用()来模拟实现居民身份证号码办理 ? 

软件设计模式之单例模式-----身份证号码---打印池_身份证号单例模式-CSDN博客

观察者模式

 对象间存在一对多关系,当一个对象被修改时,则会自动通知它的依赖对象,采用以下哪种设计模式最好 ? 

相关文章:

  • 网络共享基于什么原理,为什么MAC可以编辑局域网的windows系统文件?
  • cesium基础设置
  • 2.Part1 第一章 软件工程的定义与实践
  • 傅里叶分析之掐死教程
  • Linux:进程概念详解
  • 蓝桥杯篇---串行EEPROM AT24C02
  • 2025.2.15
  • 嵌套调用实现数组元素逆序存放
  • 算法04-希尔排序
  • spring session、spring security和redis整合的简单使用
  • LeetCode 热门100题-合并区间-不熟练
  • 人工智能之姿态估计OpenPose算法源码分析(vgg19,backbone,高斯热度图,单位向量叉乘,向量累加和后求平均,感受野,多个stage纠错)
  • 【数据结构】复杂度
  • AI前端开发与职业倦怠:效率提升的解药
  • 几款dxf文件转Gcode的开源软件
  • SQL CHECK 语句详解
  • vue不是内部或外部命令?
  • Docker 实战与应用:提升开发效率的核心命令与场景解析
  • C语言-章节 1:变量与数据类型 ——「未初始化的诅咒」
  • 相机模数转换
  • 马上评|训斥打骂女儿致死,无暴力应是“管教”底线
  • 再现五千多年前“古国时代”:凌家滩遗址博物馆今开馆
  • 新片|《碟中谍8:最终清算》定档5月30日
  • 齐白石精品在波士顿展出,“白石画屋”呈现水墨挥洒
  • 夜读丨读《汉书》一得
  • 蚊媒传染病、手足口病……上海疾控发布近期防病提示