【笔记】设计模式2
Facade模式
Facade模式要求一个子系统的外部与其内部的通信必须通过一个统一的Facade对象进行。Facade模式提供一个高层次的接口,使得子系统更易于使用。
Proxy模式
代理模式,顾名思义:就是为其他对象提供一种代理以控制对这个对象的访问。
那我们在什么情况下不愿意让外部系统直接调用类,而非要经过代理呢?
大约有如下几种情况我们需要使用代理类
1.远程代理,作为远程对象在本地的代表。
2.虚代理,根据需要创建开销很大的对象。
3.保护代理,提供对原始对象的访问控制,比如权限控制等。
4.智能指引,比如第一次使用时分配内存,无引用时销毁等。
虚代理
虚代理是一种非常有用的模式。当中举一个文档中内嵌图片的例子,假设您的图片是在文档分页的后面,一开始您并不用直接载入图片,而使用一个虚代理物件,代替图片被载入,以 求开启一个文档的时候,速度能够加快。当您卷动文档至该显示图片的页数时,这时再载入图片。最常用到的,莫过于web页面中的图片加载了。比如淘宝网,一个网页中需要常常需要加载上百张图片,如此一来页面加载就变得非常慢。如果用虚代理模式,就可以动态加载页面,同时也免去许多不必要的流量。
Observer 模式
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
1, 观察者(具体执行操作的对象,有多个)
2, 被观察者(顾名思义是被观察的对象,如果该对象发生某些变化则通知观察者执行对应的操)
Adapter 模式
将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?