Java demo for Layers, Facade, Strategy patterns