Remoting的使用,调用远程对象的构造函数,同时不在客户端包含远程对象程序集的引用

来源:互联网 发布:android网络开发 编辑:程序博客网 时间:2024/05/01 16:35

    这几天使用Remoting,做一个总结。主要是解决调用远程对象的构造函数,同时不在客户端包含远程对象程序集的引用。

  

    用Remoting时有两种激活方式,一各是well-known(网上一些资料叫服务端激活),另一种是客户端激活。这两种方式有的不同的作用,服务端激活只需要引用远程对象的接口就可以,但是不能调用这个类的构造函数,而且类的状态不能保持(比如我调用了这个类的方法A,修改一个属性,然后再调用方法B读取这个属性,这个属性的值变没有变化。这个是个人理解,不一定准确。)。客户端激活可以使用new来创建实例,可以调用不同的构造函数,但是必须要引用远程对象的程序集。所以这里比较矛盾,因为实际中可能并不想在客户端引用远程对象的程序集。  在折腾了一个晚上后才发现别人用工厂模式能解决这个矛盾。就是用服务器端激活的方式来实现客户端激活的功能。  首先创建一个工厂,由这个工厂来创建所需要的真正的类。而在服务器端公开的只是这个工厂,当通过服务端激活来远程引用这个工厂的时候,用这个工厂来创建这个真正需要的类。这样就完美的解决了问题,只需要在客户机上引用两个接口,而又能实现调用不同的构造函数。

 

 


原创粉丝点击