特定の実装を作成するためにすべて一緒にオーバーライドされる、相互に関連するクラスのグループがあります。相互に関連するサブクラスを名前空間で囲むのは良い考えかどうか疑問に思っています。
例として、次の名前空間とクラスを考えてみましょう。
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 名前空間にも属していないため、名前空間で継承を公開することは避けられないようです。