代码之家  ›  专栏  ›  技术社区  ›  Basit Anwer

单例和客户端激活对象(CAO),远程

  •  2
  • Basit Anwer  · 技术社区  · 14 年前

    MSDN

    • Singleton:“单一调用对象服务一个且只有一个请求传入…”
    • CAO:“客户机激活对象(CAO)是服务器端对象,在客户机请求时被激活……”

    在这两种情况下,数据都是不共享的,但在singleton中,一次只能连接一次客户机,为什么会有人希望这样呢 在什么情况下单例是有用的,它们之间还有什么不同吗?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Jehof    14 年前

    • 单次呼叫

      单个调用对象 只有一个服务请求传入 . 单身 调用对象在场景中很有用 单次呼叫 对象通常不需要 存储状态信息,然后 方法调用 . 但是,一个电话 对象可以在 负载平衡方式。

    • 单例对象

      单例对象是那些 服务多个客户端 调用 其中数据需要共享 明确地在客户机之间和

    • 客户端激活对象(CAO)

      客户端激活对象(CAO)是 根据客户要求激活 客户 . 这种激活服务器的方法 对象与经典非常相似 COM类激活。当 客户端提交对服务器的请求 对象使用“new”运算符 然后创建 调用了它。然后在上创建代理 使用ObjRef的客户端。这个 将执行客户端的方法调用 客户端激活的对象 可以在之间存储状态信息 方法调用其特定客户端 而不是跨不同的客户 物体 . 每次调用“new” 服务器类型的实例。

    状态信息是存储在对象的变量或属性中的一些数据,用于处理客户机请求。

    自从 单个调用对象

    A 只创建一次(可能是在服务器启动时),并且只要服务器进程正在运行就可以使用。它可以将信息存储在变量和属性中以处理客户机请求,因为每个客户机都使用同一个对象,并且在客户机调用后它不会被销毁。

    显示单个调用和单个对象之间差异的一个简单示例是创建一个方法Increment(),以增加对象中的变量(整数),并将变量写入控制台。single call对象将始终向控制台打印相同的值(如果变量以0开头,则为1),而singleton对象将始终在每次调用后打印递增的值(1、2、3等)。