Ich habe eine Gruppe von miteinander verbundenen Klassen, die alle zusammen überschrieben werden, um eine bestimmte Implementierung zu erstellen. Ich frage mich, ob es eine gute Idee ist, die zusammenhängenden Unterklassen in einem Namensraum einzuschließen.Ist es eine schlechte Idee, die Vererbungshierarchie in der Namespace-Struktur offenzulegen?
Zum Beispiel Zwecke, sollten Sie die folgenden Namespaces und Klassen:
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 { }
}
Was ist der beste Weg, um die Namensräume zu strukturieren? Es scheint unvermeidbar, die Vererbung im Namespace verfügbar zu machen, da die Basisklassen weder im Namespace Protocol.Tcp noch im Namespace Protocol.Ftp enthalten sind.