1

我有 2 个项目,一个网站和一个代理库 (dll)

代理项目有..

public class Client
{
}

public class Proxy
{
    public Client GetClient()
    {
        return new Client();
    }
}

如何阻止网站创建新的 Client 实例但允许它创建 Proxy 实例并仍然运行 GetClient?

4

4 回答 4

6

您可以将客户端更改为:

internal class Client
{
}

这样网站项目甚至看不到 Client 类,或者你可以这样做:

public class Client
{
   internal Client()
   {

   }
}

这样网站可以看到它并与之交互,但实际上并不能构建实例。

于 2013-04-04T20:52:22.667 回答
2
  1. 创建一个公共接口IProxy。确保它具有Proxy您希望公开的所有方面。

  2. ProxyIProxy

  3. 制作Proxy internal(甚至是私有的,以及 的嵌套类Client,如果适用)。

于 2013-04-04T20:53:06.920 回答
1

如果您不想创建新的 Client 实例,请考虑将 Client 设为静态或使用 Singleton 模式

于 2013-04-04T20:52:30.000 回答
1

您可以使用单例模式,也可以internal在 Client 类中声明构造函数

于 2013-04-04T20:53:36.800 回答