适配器模式

本文详细介绍了适配器模式的概念及其实现方式,通过具体示例展示了如何将一个类的接口转换为客户期望的接口,从而使原本接口不兼容的类能够协同工作。适用于需要整合现有类接口或使用第三方组件接口的情况。

适配器(Adapter)模式概述

  将一个类的接口转换成客户方期望的接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

模式中的角色

  1 目标接口(Target):客户方所期待的接口。目标可以是具体的或抽象的类,也可以是接口。

  2 需要适配的类(Adaptee):需要适配的类或适配者类。

  3 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。  

 模式图:

 

例子:

//客户方期待的接口 ,目标接口
public interface Target {

    //期待的方法
    void targetMethod1();

    void targetMethod2();

}



//需要适配的类
public class Adaptee {
    
    public void localMethod1(){
        System.out.println("需要适配的类中的方法1");
    }

    public void localMethod2(){
        System.out.println("需要适配的类中的方法2");
    }

}



//适配器
//通过包装将一个类的接口转换成客户希望的另外一个接口。 
public class Adapter implements Target{
    
    //需要被适配的类
    private Adaptee adaptee = new Adaptee();
    
    public Adapter(){}
    
    /**
     * 将需要适配的类中的方法转为客户端需要的方法
     */
    @Override
    public void targetMethod1() {
        this.adaptee.localMethod1();
    }

    @Override
    public void targetMethod2() {
        this.adaptee.localMethod2();
    }

}





public class Client{

    //客户端调用
    public static void main(String[] args){

        // 客户端通过Target来调用
        Target target = new Adapter();
        target.targetMethod1();
        target.targetMethod2();
    }

}

 

 

适配器适用场景

    5.3.1 系统需要使用现有的类,而这些类的接口不符合系统的接口。

    5.3.2 想要建立一个可以重用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。

    5.3.3 两个类所做的事情相同或相似,但是具有不同接口的时候。

    5.3.4 旧的系统开发的类已经实现了一些功能,但是客户端却只能以另外接口的形式访问,但我们不希望手动更改原有类的时候。

    5.3.5 使用第三方组件,组件接口定义和自己定义的不同,不希望修改自己的接口,但是要使用第三方组件接口的功能。

适配器应用

  DataAdapter,用于DataSet和数据源之间的适配器

 

 

 

 

end

转载于:https://www.cnblogs.com/luangeng/p/6052799.html

一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值