¿Cuál es el mejor patrón de diseño para usar cuando tiene que tomar una decisión basada en 2 variables binarias?

Lo primero que haría es asegurarme de que lo que dices que quieres es lo que quieres. La razón por la que hizo la pregunta en lugar de simplemente crear una enumeración es porque reconoció que estos dos datos están separados.

Considere lo que podría hacer si ampliara esas listas. Claro, ahora son booleanos. Pero, ¿qué pasaría si la lista de sexo fuera Masculino / Femenino / Otro, o si también permitiera que alguien no divulgara eso? Es posible que tenga 4 opciones allí. ¿Qué sucede si decide que su estado civil incluya Divorciado y Viudo? Puede tener 16 colores distintos para presentar. Ew.
Dependiendo de cuáles sean los requisitos de su aplicación, es posible que también deba trabajar para usuarios de baja visibilidad, lo que normalmente significa que todo el texto normal será de un color y el texto deshabilitado de otro. Si está utilizando el color como su único medio para comunicar ciertos datos, es posible que desee reconsiderarlo.

Si realmente decides que quieres ir por este camino, no deberías preocuparte demasiado por la repetición del código. Debería tener un método que encuentre el color para el emparejamiento dado. Un if..else con un if..else dentro no es tan malo. El mapeo del usuario de Quora es mejor. Tampoco va a tomar un tiempo apreciable para ejecutar, por lo que no hay realmente un problema de eficiencia.

No es tanto un patrón sino una estructura de datos. Use un mapa o diccionario.

Cree una clave compuesta para cada combinación (MS, MM, FS, FM) y asigne el color deseado. Cambie el valor asignado para cambiar el color. Funciona bien para pequeñas cantidades de combinaciones e incluso puede almacenarse fuera del código para permitir un cambio o modificación fácil sin tener que volver a compilar.

Estoy de acuerdo con Matt, la necesidad es una estructura de datos que un patrón de diseño.

El concepto de “patrones de diseño” es ampliamente incomprendido. Recomiendo un artículo sobre esto: Comprender los patrones de diseño en su trabajo diario. El artículo aclara la necesidad y la relación del patrón de diseño.

Atentamente

Use una tabla bidimensional inicializada estáticamente.