代理模式

简介:

定义

代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问.


使用场景

1.远程代理,也就是为一个对象在不同的地址空间提供局部代表.这样可以隐藏一个对象存在于不同地址空间的事实.

2.虚拟代理,是根据需要创建开销很大的对象.通过它来存放实例化需要很长时间的真实对象.

3.安全代理,用来控制真实对象访问的权限.

4.智能指引,是指当调用真实的对象时,代理处理另外一些事.


实现代码

//  SchoolGirl.h

#import <Foundation/Foundation.h>

@interface SchoolGirl : NSObject

@property (nonatomic, copy) NSString *name;

@end

//  SchoolGirl.m

#import "SchoolGirl.h"

@implementation SchoolGirl

@end

//  Pursuit.h

#import "GiveGift.h"

@class SchoolGirl;

@interface Pursuit : GiveGift

@property (nonatomic, copy) SchoolGirl *girl;

@end

//  Pursuit.m

#import "Pursuit.h"

#import "SchoolGirl.h"

@implementation Pursuit

-(void)giveDolls:(SchoolGirl *)schoolGirl

{

    NSLog(@"%@送你洋娃娃",schoolGirl.name);

}

-(void)giveFlowers:(SchoolGirl *)schoolGirl

{

    NSLog(@"%@送你花",schoolGirl.name);

}

-(void)giveChocolate:(SchoolGirl *)schoolGirl

{

    NSLog(@"%@送你巧克力",schoolGirl.name);

}

@end

//  GiveGift.h

#import <Foundation/Foundation.h>

@class SchoolGirl;

@interface GiveGift : NSObject

-(void)giveDolls:(SchoolGirl *)schoolGirl;

-(void)giveFlowers:(SchoolGirl *)schoolGirl;

-(void)giveChocolate:(SchoolGirl *)schoolGirl;

@end

//  GiveGift.m

#import "GiveGift.h"

@implementation GiveGift

@end

//  Proxy.h

#import "GiveGift.h"

@class Pursuit;

@interface Proxy : GiveGift

@property (nonatomic, copy) Pursuit *pursuit;

@end

//  Proxy.m

#import "Proxy.h"

#import "Pursuit.h"

#import "SchoolGirl.h"

@implementation Proxy

-(void)giveDolls:(SchoolGirl *)schoolGirl

{

    Pursuit *pursuit = [[Pursuit alloc] init];

    [pursuit giveDolls:schoolGirl];

}

-(void)giveFlowers:(SchoolGirl *)schoolGirl

{

    Pursuit *pursuit = [[Pursuit alloc] init];

    [pursuit giveFlowers:schoolGirl];

}

-(void)giveChocolate:(SchoolGirl *)schoolGirl

{

    Pursuit *pursuit = [[Pursuit alloc] init];

    [pursuit giveChocolate:schoolGirl];

}

@end


//  main.m

//  代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问.

#import <Foundation/Foundation.h>

#import "SchoolGirl.h"

#import "Proxy.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        SchoolGirl *jiaojiao = [[SchoolGirl alloc] init];

        jiaojiao.name = @"jiaojiao";

        

        Proxy *proxy = [[Proxy alloc] init];

        

        [proxy giveDolls:jiaojiao];

        [proxy giveFlowers:jiaojiao];

        [proxy giveChocolate:jiaojiao];

    }

    return 0;

}

目录
相关文章
|
1天前
|
人工智能 自然语言处理 Shell
🦞 如何在 Moltbot 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 Moltbot 配置阿里云百炼 API
|
6天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
|
9天前
|
JSON API 数据格式
OpenCode入门使用教程
本教程介绍如何通过安装OpenCode并配置Canopy Wave API来使用开源模型。首先全局安装OpenCode,然后设置API密钥并创建配置文件,最后在控制台中连接模型并开始交互。
4360 8
|
15天前
|
人工智能 JavaScript Linux
【Claude Code 全攻略】终端AI编程助手从入门到进阶(2026最新版)
Claude Code是Anthropic推出的终端原生AI编程助手,支持40+语言、200k超长上下文,无需切换IDE即可实现代码生成、调试、项目导航与自动化任务。本文详解其安装配置、四大核心功能及进阶技巧,助你全面提升开发效率,搭配GitHub Copilot使用更佳。
10057 21
|
2天前
|
人工智能 自然语言处理 Cloud Native
大模型应用落地实战:从Clawdbot到实在Agent,如何构建企业级自动化闭环?
2026年初,开源AI Agent Clawdbot爆火,以“自由意志”打破被动交互,寄生社交软件主动服务。它解决“听与说”,却缺“手与脚”:硅谷Manus走API原生路线,云端自主执行;中国实在Agent则用屏幕语义理解,在封闭系统中精准操作。三者协同,正构建AI真正干活的三位一体生态。
2177 6
|
1天前
|
存储 安全 数据库
使用 Docker 部署 Clawdbot(官方推荐方式)
Clawdbot 是一款开源、本地运行的个人AI助手,支持 WhatsApp、Telegram、Slack 等十余种通信渠道,兼容 macOS/iOS/Android,可渲染实时 Canvas 界面。本文提供基于 Docker Compose 的生产级部署指南,涵盖安全配置、持久化、备份、监控等关键运维实践(官方无预构建镜像,需源码本地构建)。
870 2
|
16小时前
|
机器人 API 数据安全/隐私保护
只需3步,无影云电脑一键部署Moltbot(Clawdbot)
本指南详解Moltbot(Clawdbot)部署全流程:一、购买无影云电脑Moltbot专属套餐(含2000核时);二、下载客户端并配置百炼API Key、钉钉APP KEY及QQ通道;三、验证钉钉/群聊交互。支持多端,7×24运行可关闭休眠。
|
17天前
|
存储 人工智能 自然语言处理
OpenSpec技术规范+实例应用
OpenSpec 是面向 AI 智能体的轻量级规范驱动开发框架,通过“提案-审查-实施-归档”工作流,解决 AI 编程中的需求偏移与不可预测性问题。它以机器可读的规范为“单一真相源”,将模糊提示转化为可落地的工程实践,助力开发者高效构建稳定、可审计的生产级系统,实现从“凭感觉聊天”到“按规范开发”的跃迁。
2533 18
|
9天前
|
人工智能 前端开发 Docker
Huobao Drama 开源短剧生成平台:从剧本到视频
Huobao Drama 是一个基于 Go + Vue3 的开源 AI 短剧自动化生成平台,支持剧本解析、角色与分镜生成、图生视频及剪辑合成,覆盖短剧生产全链路。内置角色管理、分镜设计、视频合成、任务追踪等功能,支持本地部署与多模型接入(如 OpenAI、Ollama、火山等),搭配 FFmpeg 实现高效视频处理,适用于短剧工作流验证与自建 AI 创作后台。
1343 5