Me enfrento al siguiente enigma: Nuestro software tiene una clase base abstracta para objetos de algoritmo. Todos estos objetos tienen un método común execute()
, por ejemplo .:Parámetros genéricos (casi) autodescriptivos en C++ junto con una GUI?
class Algorithm
{
public:
// [...]
virtual void execute() = 0;
// [...]
};
Para cada algoritmo que queremos implementar, simplemente heredan de la clase base y almacenar todos los objetos cargados de algoritmos en una ubicación central. Hasta aquí todo bien.
El problema ahora radica en los parámetros de un algoritmo. Queremos ser capaces de describir para cada algoritmo los parámetros que deben establecerse (por una clase externa). Para este fin, le dimos a cada algoritmo un objeto ParameterList
que contiene sus parámetros. Debo aclarar que, para nosotros, un parámetro consiste en una especie de tipo (como int
) y una etiqueta (como "número de iteraciones).
El problema ahora comienza cuando queremos conectar el ParameterList
a algún tipo de GUI. Obviamente, nuestros algoritmos no deberían tener "conocimiento" de la API gráfica (Qt, GTK, etc.) que estamos utilizando. Sin embargo, en el mismo lado, queremos poder describir semáforos semánticamente, por ejemplo especificando que el algoritmo requiere un nombre de fichero . Como se muestra a continuación, este nombre de fichero es hasta la interfaz gráfica de usuario.
¿hay una manera de combinar este ParameterList
con algún tipo de conocimiento de tipo semántico?
Me doy cuenta de que esta pregunta suena muy vaga. Sin embargo, no tengo permitido publicar ningún ejemplo de código no trivial (por razones de NDA). Entonces, ¿alguien se ha enfrentado a un problema similar en el pasado?
Para concluir: queremos que nuestros objetos describan los parámetros que requieren una GUI, sin conocer los detalles exactos de la GUI.
OK, ver, * eso es * una buena pregunta. Y de un nuevo póster, también. Hay esperanza despues de todo. –
otro método virtual implementado en cada clase de algoritmo que proporciona la lista de los parámetros requeridos e información sobre el tipo (tal nombre de archivo -> luego un campo de texto con un botón de archivo abierto, entero -> botón de giro ...) y así sucesivamente ... la GUI pide que se muestren los parámetros para el algoritmo que se ejecutará ... ¿por qué no? – ShinTakezou