online - desing o design
¿Qué es separación de preocupaciones? (9)
¿Qué es separación de preocupaciones?
¿Qué es una preocupación?
¿Cómo podría una partición de una aplicación en estas "preocupaciones diferentes"?
¿Sabes sobre HTML y CSS? Esa es la separación de las preocupaciones allí mismo.
El archivo HTML (posiblemente XML) define la estructura del documento. El archivo CSS define cómo se presenta el documento en su pantalla.
En términos generales, significa que segrega su software en áreas distintas cuya funcionalidad no se superpone.
Wikipedia tiene una buena explicación:
Este principio establece que un problema determinado involucra diferentes tipos de preocupaciones, que deben identificarse y separarse para hacer frente a la complejidad, y para lograr los factores de calidad de ingeniería requeridos, tales como robustez, adaptabilidad, facilidad de mantenimiento y reutilización. Link
Las preocupaciones son los diferentes aspectos de la funcionalidad del software. Por ejemplo, la "lógica comercial" del software es una preocupación, y la interfaz a través de la cual una persona usa esta lógica es otra.
La separación de las preocupaciones es mantener el código para cada una de estas preocupaciones por separado. Cambiar la interfaz no debería requerir cambiar el código de lógica de negocios, y viceversa.
El patrón de diseño Model-View-Controller (MVC) es un excelente ejemplo de cómo separar estas preocupaciones para una mejor mantenibilidad del software.
Para más información:
Los datos se pueden representar de muchas maneras diferentes y si podemos traducir entre las representaciones, no importará qué representación elegimos usar porque deberíamos poder acceder y manipular esos datos. Si tuviéramos un traductor de idiomas universal, no importaría que alguien nos dijera la hora en francés, alemán o árabe; nuestra capacidad de traducir aseguraría que sabríamos la hora. En términos de datos, hay tres representaciones clave que son importantes: la representación física de dónde y cómo se almacenan los datos; la representación lógica de qué datos se pueden almacenar, su semántica y las relaciones con otros datos; y la representación externa, que es cómo aparece a los usuarios. Asumir que es posible traducir entre las diferentes representaciones permite a las personas comprender y usar los datos de la manera que prefieran. Por lo tanto, a nivel físico, un técnico de bases de datos podría optimizar el almacenamiento físico de datos independientemente de la descripción lógica o la descripción externa siempre que ajusten la descripción almacenada y la traducción entre las representaciones. Al separar estas preocupaciones, es posible crear colecciones de datos de propósito general que pueden ser utilizadas por diferentes usuarios con diferentes requisitos y que usan representaciones diferentes, sin la necesidad de duplicar los datos. Revisaremos estas características a lo largo de este curso
No es realmente una respuesta a su pregunta, pero si está interesado en esto, hay un patrón de diseño relacionado llamado Dependency Inversion .
Digamos que tienes una clase con un método que necesita ser influenciado desde fuera de la clase, o necesitas múltiples implementaciones de la misma, o el hecho de que es un método de esa clase hace que las pruebas unitarias sean difíciles. Puede poner ese método en una clase completamente separada y pasar la instancia de la primera clase como un parámetro.
Esto es especialmente útil cuando se usan interfaces simuladas . Puede probar el método pasando los simulacros para la otra clase con valores codificados y resultados esperados.
Se describe en la wikipedia: http://en.wikipedia.org/wiki/Separation_of_concerns
Es el valor establecido en el Principio de Responsabilidad Individual, que una función / clase / método debe hacer una sola cosa. Que debería hacerlo todo, hacerlo bien y hacerlo solo.
Básicamente, significa que no debes juntar tus ideas juntas en una pasta grumosa, sino que debes separar tus ideas limpiamente en el código. Si no lo hace, es difícil cambiar, probar o depurar el código. Si los separas, entonces tienes un poco de libertad para cambiar. Por ejemplo, si envía su generador de html a su consulta, le resultará difícil cambiar el formato y le resultará difícil cambiar a una consulta diferente. Si los separa, entonces ambas cosas se vuelven fáciles. O más fácil, al menos.
Wikipedia:
En ciencias de la computación, la separación de preocupaciones (SoC) es el proceso de dividir un programa de computadora en características distintas que se superponen en funcionalidad lo menos posible. Una preocupación es cualquier interés o enfoque en un programa. Por lo general, las preocupaciones son sinónimos de características o comportamientos. El progreso hacia SoC se logra tradicionalmente a través de la modularidad y la encapsulación, con la ayuda del ocultamiento de la información.
Publico esto no para ganar reputación, sino para preguntarme por qué harías una pregunta que pueda ser respondida tan fácilmente.
http://en.wikipedia.org/wiki/Separation_of_concerns
En ciencias de la computación, la separación de preocupaciones (SoC) es el proceso de dividir un programa de computadora en características distintas que se superponen en funcionalidad lo menos posible. Una preocupación es cualquier interés o enfoque en un programa. Por lo general, las preocupaciones son sinónimos de características o comportamientos. El progreso hacia SoC se logra tradicionalmente a través de la modularidad y la encapsulación, con la ayuda del ocultamiento de la información.