У меня есть группа взаимосвязанных классов, которые все переопределены для создания конкретной реализации. Мне интересно, стоит ли прикладывать взаимосвязанные подклассы в пространстве имен.Неплохо ли представить иерархию наследования в структуре пространства имен?
Для целей примера, рассмотрим следующие пространства имен и классы:
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.