2010-05-28 18 views
8

Sé que este es el patrón del Constructor, pero es una forma modificada del mismo. Considerando que el artículo de Wikipedia sobre Builder da el ejemplo:¿Hay un término específico para el patrón del constructor donde cada método devuelve `this`?

pizzaBuilder.createNewPizzaProduct(); 
pizzaBuilder.buildDough(); 
pizzaBuilder.buildSauce(); 
pizzaBuilder.buildTopping(); 
Pizza p = pizzaBuilder.getPizza(); 

¿Hay un nombre específico para el Builder modificado que se parece a:

Pizza p = pizzaBuilder.createNewPizzaProduct().buildDough().buildSauce().buildTopping(); 

Esto se ve mejor en la Biblioteca jQuery, donde puede hacer algo como:

$('li.item-a').parent().css('background-color', 'red'); 

Donde cada método, incluido el inicial $(), devuelve un objeto jQuery que típicamente representa un conjunto de elementos de página, y cada método opera de algún modo en ese conjunto.

Respuesta

8

He visto esto llamado Fluent Builder varios lugares.

Esto tiene mucho sentido, ya que es básicamente una combinación de un patrón de diseño Fluent Interface y Builder.

+0

Ese es un nombre perfecto (comunica exactamente lo que es) +1 –

+0

Estoy de acuerdo, que suena como el nombre perfecto. No solo eso, sino que nunca antes había oído hablar del término "Interfaz fluida", así que iré a leer más sobre otras técnicas con fluidez. – Ricket

3

Se le puede llamar una Fluent interface:

En la ingeniería de software, una interfaz fluida (como se acuñó por Eric Evans y Martin Fowler) es una forma de implementar una API orientada a objetos de una manera que tiene como objetivo proporcionar un código más legible

Una interfaz fluida normalmente se implementa mediante método de encadenamiento para retransmitir el contexto de instrucciones de una llamada posterior (pero una interfaz fluida implica algo más que el encadenamiento de método)

3

yo llamaría la técnica de "método de encadenamiento" .

(más o menos de acuerdo con wikipedia ...)

Y sí, el encadenamiento método puede ser usado para construir interfaces fluidas.

Cuestiones relacionadas