Tengo una aplicación GUI con muchos controles. La mayoría de ellos tienen eventos y los controles están lógicamente conectados a cada uno allí. Por ejemplo, tengo 5 comboBoxes. Si elijo algo en cb1 y cb3 ellos cb2 debe cambiar una lista de sus valores disponibles. Si elijo algo en cb2 y ch4, ellos cb5 deben cargar su lista de valores disponibles. Todos los artículos que he encontrado en la web dicen que debo usar mediator pattern en este caso. Pero en todos estos artículos, el mediador es algo así como una clase divina, que sabe todo sobre todos los controles y decide qué se debe hacer en caso de algún evento. Si tengo 5-6 controles, todo está bien. ¿Pero y si tengo algo así como 20 o 40 controles? Supongo que la clase de mediador se convertirá en un monstruo en este caso. Será difícil hacer algo con él (modificar o agregar nuevas funcionalidades).¿Qué patrón de diseño usar (necesito algo como patrón de mediador)?
¿Hay algún otro patrón, o buenos ejemplos de mediador pathern, que ayuden a resolver esta situación?
PD: Disculpe si ya hay preguntas sobre este tema, hay tantas preguntas con el mismo nombre, que no es tan fácil encontrar algo que realmente necesito de todos estos temas.
De hecho, 20-40 controles podrían conducir a un Mediador muy complejo. Sin embargo, el Mediador tiene una responsabilidad clara, que es más fácil de entender que difundir la lógica en muchas clases. La * bandera roja * en su pregunta no es el riesgo de clase divina debido a 20-40 controles, sino más bien un diseño de GUI que permite 20-40 controles en primer lugar. – Fuhrmanator
** Fuhrmanator **, tengo una situación con una gran forma de trabajar con algunos negocios s documentos (facturas, contratos, etc.). Entonces, hay muchos campos con los cuales los usuarios deben trabajar. Para los usuarios, es más conveniente trabajar con una pantalla de información. Entonces, si trato de decir algo como "ok, por ahora tendrás 3 \ 5 formularios \ pantallas \ windows. Completa esta información en el primero y esa información en el segundo". los usuarios encontrarán alguna otra compañía de desarrollo, en lugar de cambiar sus hábitos. Y, de todos modos, este tema es para otro tema, supongo :) –