我有一组相互关联的类,它们都被重写在一起以创建特定的实现。我想知道是否将相关子类放入命名空间是一个好主意。暴露名称空间结构中的继承层次结构是一个坏主意吗?
例如目的,考虑下面的命名空间和类:
namespace Protocol
{
public abstract class Message { }
public abstract class Driver { }
}
namespace Protocol.Tcp
{
public class TcpMessage : Message { }
public class TcpDriver : Driver { }
}
namespace Protocol.Ftp
{
public class FtpMessage : Message { }
public class FtpDriver : Driver { }
}
什么是组织命名空间的最佳方式?由于基类不属于Protocol.Tcp命名空间或Protocol.Ftp命名空间,因此在名称空间中公开继承是不可避免的。