Odpověď na názor

Odpovídáte na názor ke článku Tvoříme "vláčky" nejen v C++.

  • 26. 1. 2012 21:25

    Natix (neregistrovaný)

    V Javě se fluent interface používá při implementaci builder patternu. Co zde bohužel nezaznělo, je to, že hlavní důvod pro jeho použití je postupné vytváření komplexního objektu s velkým množstvím volitelných parametrů/atributů, který ale ve výsledku musí být immutable.

    Takový objekt není možné objekt nejprve vyrobit a teprve pak postupně nasetovat (že je zápis builderem kratší je už jenom bonus). Konstruktorem nebo factory metodou by se ten objekt sice vyrobil najednou, ale musely by mít hroznou hromadu argumentů (a pravděpodobně být ještě několikanásobně přetížené), v čemž by se ani prase nevyznalo. Builder tohle krásně řeší.

    Příkladem budiž StringBuilder, request a response builder v Jersey, mimo JDK buildery intenzivně využívají třeba chlapci z Guavy.

    Order order = webResource
    .path("Orders")
    .accept(Media­Type.APPLICATI­ON_JSON)
    .header(API_KE­Y_NAME, API_KEY)
    .header(USER_TO­KEN_NAME, userToken)
    .get(new GenericType() {});