cómo organizar tipos de características en lugar de características podría ser clave para separar los patrones de diseño '' de 'algoritmos' ...
Los patrones de diseño describen soluciones genéricas a problemas de diseño comunes. "Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, y luego describe el núcleo de la solución a ese problema, de tal manera que puede usar esta solución un millón de veces, sin hacerlo nunca igual dos veces "(Christopher Alexander) En la programación, esto se hace mediante la descripción de conjuntos específicos de relaciones entre los objetos de software (incluidos los objetos conceptuales o del mundo real). Se debe evitar la descripción de la implementación específica, ya que hace que el patrón de diseño sea menos genérico.
Un algoritmo es un conjunto de pasos que definen cómo se realiza una tarea. La ejecución de cada paso en un algoritmo no requiere habilidades creativas. Por el contrario, solo requiere la capacidad de seguir instrucciones. (advertencia: algoritmos no deterministas, no se ajustan a esta restricción y son un tema importante de investigación)
Por lo tanto, creo que una descripción de la relación podría ser separar las funciones de las funciones. Sin embargo, la colección de características de un objeto determinará su función ya que cada sub-función tiene funciones encapsuladas en ella. Cuando unes muchos objetos pequeños en un objeto más grande (por ejemplo, instancias de diferentes clases en un programa), algunos de ellos trabajarán juntos para crear nuevas funciones que no tenían por sí mismos (el conjunto es mayor que la suma de sus partes).) Puede decir que este es solo un nuevo algoritmo, pero también es un nuevo objeto. Las características y funciones son dos caras de la misma moneda, por lo que es imposible separarlas por completo. Pero cómo organizar tipos de características en lugar de características específicas podría ser clave para separar 'patrones de diseño' de 'algoritmos' ya que si los patrones de diseño son sobre la organización de características específicas, es decir, instancias de clases específicas, entonces el algoritmo ya habría sido presentado y la implementación sería exactamente la misma siempre, es decir, no sería genérica y no se puede "usar esta solución un millón de veces, sin hacerlo nunca de la misma manera dos veces".
Me parece que no estás realmente buscando un algoritmo. ¿Qué entradas proporcionará y qué salida espera tener después de realizar el algoritmo? –
¿Es este un algoritmo o un patrón de diseño (o una receta para desastres)? 1. Cuando se ejecuta una consulta, presione una consulta opuesta de "deshacer" en una pila. 2. Cuando se presiona el botón Deshacer, pop query off stack y ejecútelo. Tal vez el problema es no determinismo? –