Pregunta

¿Cuál es la diferencia entre Builder y flyweight en términos de uso, ya que ambos de ellos tiene que ver con el gran número de objetos?

¿Fue útil?

Solución

El Builder se utiliza para crear muchos objetos, por lo que el patrón de peso mosca se trata de compartir como una colección de objetos.

Estos dos patrones de ambos se ocupan de "materiales compuestos", es decir, objetos que pueden tener varios elementos, pero no deben ser utilizados juntos en absoluto. El caso de uso arquetipo de peso mosca es donde un grupo de unas pocas docenas de caracteres objetos se utilizan una y otra vez en una aplicación de edición de texto (este es el ejemplo dado en la "libro GoF" )

Otros consejos

Recta de Wikipedia.

peso mosca

  

Peso mosca es un diseño de software   modelo. Un peso mosca es un objeto que   reduce al mínimo el uso de memoria mediante el intercambio como   tantos datos como sea posible con otro   objetos similares; es una manera de utilizar   objetos en grandes cantidades cuando un simple   la representación repetida usaría una   cantidad inaceptable de memoria.

Constructor

  

El Builder es un software   patrón de diseño. La intención es   medidas abstractas de la construcción de   objetos de modo que diferentes   implementaciones de estos pasos pueden   construir diferentes representaciones de   objetos.

Una ayuda con objetos de construcción y la otra ayuda con el uso de memoria. Se podría usar potencialmente un constructor para "construir" diferentes objetos de peso mosca.

flyweight es apropiado cuando "muchos objetos deben ser manipulados y éstos no pueden permitirse el lujo de tener datos extraños." En Java, los objetos String se gestionan como peso mosca. Java pone todos los literales de cadena fija en una piscina literal. Para los literales redundantes, Java mantiene sólo una copia en la piscina.

La clave para hacer el trabajo de peso mosca es mediante el control de la instanciación de objetos usando un patrón de diseño método de fábrica o el constructor. El trabajo de un método de fábrica es simplemente crear objetos: criterios de entrada dados, se devuelve un objeto del tipo apropiado.

Extracto de fábrica es similar al constructor en que también puede construir objetos complejos. La principal diferencia es que el Builder se centra en la construcción de un objeto complejo paso a paso. El énfasis de factor de Abstract está en familias de objetos de productos (ya sea simples o complejas).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top