Notes

This sample application draws three red squares. The problem with this implementation is that if the requirements of the application change (for example, the size or the color of the square), you have to implement the changes at three different places. This is a trivial example, but you can easily imagine the maintenance problem of code duplication in a large scale application.