Use Of @Factory with Seam
Using "normal" JSF one has often the problem of returning properties somewhat more complex than simple Strings or native data types. In these cases, the generation may for example need a connection to the database which increases the costs additionally. Usually, you would place the construction in the getter method of the property in he backing bean. Now, it could happen, that this getter is called quite often. Here, one can use another private variable which holds the state of the more complex data structure (means, if the data is already fetched from the DB).
For such cases, Seam uses the @Factory annotation, which guarantees that the needed data is prepared only once (at the first request).