Respecto única forma de estructurar una bestia ...
Puede utilizar las clases parciales para dividir la clase principal y las clases anidadas. Cuando lo haga, se le aconseja que nombre los archivos de manera apropiada, de modo que es obvio lo que está sucediendo.
// main class in file Outer.cs
namespace Demo
{
public partial class Outer
{
// Outer class
}
}
// nested class in file Outer.Nested1.cs
namespace Demo
{
public partial class Outer
{
private class Nested1
{
// Nested1 details
}
}
}
De la misma manera, a menudo se ven interfaces (explícitas) en su propio archivo. p.ej. Outer.ISomeInterface.cs
en lugar del editor predeterminado de #region
ing them.
Sus proyectos de estructura de archivos y luego empieza a parecerse
/Project/Demo/ISomeInterface.cs
/Project/Demo/Outer.cs
/Project/Demo/Outer.Nested1.cs
/Project/Demo/Outer.ISomeInterface.cs
Normalmente, cuando estamos haciendo esto es por una variación del patrón del constructor.
Esto: "fundamentalmente roto cuando es consumido o utilizado por cualquier otra clase". – Alonzzo2