I use it on occasions when I want to implement user interfaces, data, and control logic. in order to have a separation between the business logic and its visualization.