Digamos que você queira ocultar todos os elementos de IU que herdam de uma interface / classe base Hideable.
Este padrão permite que você vá de um código como este:
foreach (Hideable hideable in frame
.GetWidgetsManager()
.GetAllWidgets())
{
hideable.Hide();
}
foreach (Hideable hideable in frame
.GetPopupNotices())
{
hideable.Hide();
}
Para isso:
Hideable.Hide();
Escrevi um artigo sobre isso que explica em mais detalhes a implementação em C #.