我有一个抽象类,它有一个用于返回其子类的静态工厂方法:
public abstract class ITop {
public static ITop MakeMeOne(whatever x) {
if(x == something) {
return BottomA(x);
}
else {
return BottomB(x);
}
}
}
public class BottomA : ITop {
public BottomA(whatever x) {}
}
public class BottomB : ITop {
public BottomB(whatever x) {}
}
我想隐藏世界其他地方的实现(包括同一个程序集中不相关的类)BottomA
。BottomB
所以它们只能通过ITop
. 这看起来很简单,但我一直无法找到正确的访问器组合来做到这一点。
编辑:
很多人都指出我可以将所有东西都放在内部,但是在同一个程序集中隐藏类是一个关键要求,所以这并不能解决它。