A Layout composer
In Chapter 6, Activating Patterns, we used a builder to construct a simple UI. The builder was a perfect choice for this task, as we were only concerned with including one type of view. We could have adapted this scheme (literally, with an adapter) to cater for other view types, but it would be far better to employ a pattern that does not care what type of component it is dealing with. Hopefully, the preceding example demonstrates the composite pattern's suitability to this kind of task.
In the following example, we will apply the same principle to an actual UI inflater that works with different types of view, composite groups of views and, most significantly, dynamic nested layouts.
For the purpose of this exercise, we will suppose that our app has a news page. This would largely be a promotional feature, but it has been demonstrated that consumers are more susceptible to advertising when it is dressed up as news. Many of the components, such as header and logo, will remain...