¿Ejemplos de composición en ingeniería de software?

7

En la programación, varios términos como abstracción se mencionan bastante. ¿Qué, sin embargo, es la composición? Este es un ejemplo básico pero efectivo de composición en juego que resulta en un código de buena calidad (buena calidad significa fácil de entender, breve y concisa, etc.).

    
pregunta dotnetdev 15.09.2011 - 00:47

5 respuestas

9

En el sentido de programación funcional , una composición es:

si una función f toma un foo y devuelve una barra, y    si una función g toma una barra y devuelve un bla,    luego hay una función h que toma un foo y devuelve un bla, tal que:    h (foo) = g (f (foo))

Es decir, si f es "tomar la longitud de una cadena" y g es "duplicar el tamaño de un entero", entonces hay una función compuesta h que toma la longitud de una cadena y la duplica.

En el sentido de la programación orientada a objetos una composición es: una clase C puede contener campos de clases D y E. C es una clase que compone una D con una E.

    
respondido por el Eric Lippert 15.09.2011 - 01:04
5

La composición es simplemente cuando tienes varios objetos que componen un objeto más complejo. Ejemplo:

class Person {
    string FirstName { get; set; }
    string LastName { get; set; }
}

La persona se compone de un Nombre y un Apellido

    
respondido por el Kyle W 15.09.2011 - 00:58
1

En OO , hay al menos estos significados de Composición además de lo que se mencionó anteriormente:

1-La composición de diferentes tipos de datos en una clase representa un nuevo tipo.

Clase de hogar { coche público myCar; horno público myOven; tv pública myvv; }

2-Composición como un tipo de asociación entre 2 objetos la composición en UML se representa utilizando la etiqueta de asociación "tiene una" y se representa con una forma de diamante relleno de negro. Ver:

enlace

enlace

3- Las clases internas representan un tipo de composición. En C # .Net puede tener 1 archivo de código de clase con más de 1 definición de clase dentro.

En Entity Relationship Modeling , la composición se implementa incluyendo la clave primaria de la tabla principal como parte de la clave de la clave primaria de la tabla secundaria y estableciendo una restricción tal que cuando la principal es eliminado, se eliminan todos los hijos.

Esta representación, junto * texto fuerte * ella con composición en asociación de objetos da como resultado un fuerte vínculo entre componentes de por vida para que nadie pueda vivir (o tener un significado comercial) sin el otro. Un buen ejemplo puede ser una factura compuesta por encabezado y líneas de detalle. Las líneas de detalle por sí mismas no tienen sentido sin la información del encabezado y viceversa.

    
respondido por el NoChance 15.09.2011 - 05:16
0

Aunque el término composición puede referirse a muchos aspectos de la programación, como los objetos múltiples dentro de una clase, el término al hablar de programación abstracta generalmente significa ejecutar múltiples líneas funcionales de código dentro de una sola declaración. Piense en f (g (x)) en términos matemáticos.

El método de composición más común en el que puedo pensar en la programación en el mundo real es la definición de directivas de preprocesador en C ++ o C.

 #define getmax(a,b) a>b?a:b

lo anterior define una función if / then que devuelve un máximo de 2 enteros diferentes que luego pueden usarse dentro de otras líneas de código, creando así una composición.

Si alguna vez escuchó el término claves públicas y privadas cuando se habla de criptografía, este es un ejemplo clásico de algoritmos de composición donde f (g (x)) yx es típicamente su clave privada.

    
respondido por el Magnum 15.09.2011 - 01:09
0

Depende de lo que entiendas por composición, que se usa para varias cosas. Primero pienso en el patrón compuesto , que se usa ampliamente. El manejo de datos en una estructura de árbol es un ejemplo simple de un patrón compuesto, y permite una fácil recursión a través de los nodos.

    
respondido por el psr 15.09.2011 - 01:27

Lea otras preguntas en las etiquetas

Comentarios Recientes

Parte 2 de esta serie: Compilación compositiva. Conclusión Esta publicación es bastante amplia, pero pensé que escribiría mi cuarta publicación discutiendo el tema de la composición compositiva en el contexto de Visual Studio 2013. Hoy podemos combinar elementos de ZDoom y Open GL para crear entornos virtuales integrados en Unreal Engine 4. Nuestro objetivo para la colaboración fue crear un paquete inteligente de OpenGL que maneje características de rendimiento más avanzadas que sean específicas de un conjunto... Lee mas