我有一组相互关联的类,它们都被一起覆盖以创建特定的实现。我想知道将相互关联的子类包含在命名空间中是否是个好主意。
例如,考虑以下命名空间和类:
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 命名空间。