我有 2 个项目,一个网站和一个代理库 (dll)
代理项目有..
public class Client
{
}
public class Proxy
{
public Client GetClient()
{
return new Client();
}
}
如何阻止网站创建新的 Client 实例但允许它创建 Proxy 实例并仍然运行 GetClient?
您可以将客户端更改为:
internal class Client
{
}
这样网站项目甚至看不到 Client 类,或者你可以这样做:
public class Client
{
internal Client()
{
}
}
这样网站可以看到它并与之交互,但实际上并不能构建实例。
创建一个公共接口IProxy
。确保它具有Proxy
您希望公开的所有方面。
有Proxy
器IProxy
。
制作Proxy
internal
(甚至是私有的,以及 的嵌套类Client
,如果适用)。
如果您不想创建新的 Client 实例,请考虑将 Client 设为静态或使用 Singleton 模式
您可以使用单例模式,也可以internal
在 Client 类中声明构造函数