当前位置:  开发笔记 > 编程语言 > 正文

什么是控制反转/面向方面意义上的.NET代理对象?

如何解决《什么是控制反转/面向方面意义上的.NET代理对象?》经验,为你挑选了1个好方法。

控制反转/面向方面意义上的代理对象是什么?

关于什么是代理对象的任何好文章?
为什么你想要使用一个?
如何在C#中编写一个?



1> Charles Bret..:

通常,Proxy对象是一个对象(类的实例),它公开与"真实类"完全相同的公共接口,但只是将对其成员的所有调用转发给另一个真实类.代理对象的使用有多种原因......

一个目的是"假装"成为真正的类,因此客户端组件(或对象)可以"相信"它与"真实"对象进行通信,但在代理内部,其他内容(如日志记录,事务支持等). )正在同时完成......其次,代理在与真实对象的比较中可以非常便宜.并且经常被使用以便当客户端不使用它们时可以节省(关闭或释放到池以供其他客户端使用)...代理保持"活着"并且客户端认为它仍然具有与真实对象的连接,但每当它"调用"对象时,它实际上是在调用代理,代理只是为了处理调用而获取另一个真实对象,然后在调用完成后释放真实对象.

至于控制反转(IOC)..这是指一种常见模式(也称为依赖注入),其中类中的依赖对象被"注入"类的实例,从客户端代码到控制实例将使用的依赖对象的版本... IOC可用于将"代理"对象注入到它认为正在使用真实对象的类中......短语反转控制指的是使用时的事实这种模式,关于调用哪个实际实现的决定不再受调用类的控制,而是该类的客户端,当它将一个依赖对象的实例注入要用于此的类时呼叫.

通常,术语IOC与所谓的IOC容器一起使用,这是一个专门设计用于创建依赖类的实例的类,它基于松散耦合的有关那些类(类型)的信息,它来自除硬连线依赖之外的某些来源(最常见的是,来自某种配置文件) .通常,当您使用IOC容器时,在应用程序启动时创建它的实例,然后(通过读取配置数据或其他),您"注册"IOC容器将负责的每个类(类型) ,具有关键值.密钥通常是此注册的所有实例必须实现的抽象类型或接口.然后,在您的应用程序的正常操作中,您可能会在其中新建一个这些类型的实例,您可以调用IOC容器,并询问它的实例,使用抽象类型/接口作为键.然后,IOC容器使用反射或动态加载(或其他)来创建已使用该键"注册"的任何类型的实例.通过这种方式,只需更改配置数据,即可控制应用程序使用的实际类型,在一个环境或部署位置更改它们与另一个环境或部署位置.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有