I have previously used the DataTable and I am now using the inmethod-grid. Both are based upon (or use) the RefreshingView. My interface allows the user the ability to add lines to the grid. In order to avoid a screen refresh, I use ajax to initiate the addition of a grid row. By using the same IItemFactory that was used to create the initial rows I can minimize the extra code I have to write to inject a row into the grid. I even want to avoid a complete repaint of the table, because that could be expensive as well.
I suppose an alternate to refactoring the IITemFactory our would be to expose the methods that it uses (newChildId(), newItem(), populateItem()), it just seemed that exposing that object would easier and it felt like it had better continutiy of thought to use the same exact code to introduce the new row as was used for the initial dataset.
The use case:
The user is presented with a DataTable\inmethod-grid. The grid is designed to reuse the item models. The are also presented with a button that can be used to add an "empty" row to the grid. I my cases, the data uis backed by a database.