在命名空间结构中公开继承层次结构是一个坏主意吗?

Luk*_*uke 4 c# convention oop inheritance naming

我有一组相互关联的类,它们都被重写以创建一个特定的实现.我想知道将相关的子类括在命名空间中是否是一个好主意.

例如,请考虑以下名称空间和类:

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 { }
}
Run Code Online (Sandbox Code Playgroud)

构造命名空间的最佳方法是什么?由于基类实际上不属于Protocol.Tcp命名空间或Protocol.Ftp命名空间,因此在命名空间中公开继承似乎是不可避免的.

Rob*_*per 6

我想你也许太担心了!

它在逻辑上有意义吗?您知道在命名空间中找到代码的位置吗?

我更愿意看到像上面这样的代码库,其中包含少量类,与具有层次结构的名称相关,而不是一个大型命名空间,其中所有内容都是相互关联的.

请记住,命名空间恰恰就是这样,以逻辑方式组织您的代码库

你有什么看似合乎逻辑:)

编辑:

举个例子:

using System.Data;
using System.Data.Sql;
Run Code Online (Sandbox Code Playgroud)

;)