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