Tome un patrón muy común. Class Factory hace Widgets. La clase de fábrica necesita rebuscar con las partes internas, porque es la fábrica. Ambos se implementan en el mismo archivo y son, por diseño, deseo y naturaleza, clases estrechamente conectadas; de hecho, Widget es realmente solo un tipo de salida de fábrica.
En C++, haga de Factory un amigo de la clase de Widget.
En C#, ¿qué podemos hacer? La única solución decente que se me ha ocurrido es inventar una interfaz, IWidget, que solo expone los métodos públicos, y tiene las interfaces de devolución de fábrica de IWidget.
Esto implica una buena dosis de tedio, exponiendo de nuevo todas las propiedades públicas de forma natural en la interfaz.
No debe probar miembros privados directamente como si fueran accesibles como públicos. Por lo general, las personas solo realizan pruebas contra miembros públicos: http://stackoverflow.com/a/5662371/62921 Los miembros privados se probarán en el camino indirectamente. – ForceMagic