It is often useful to create one or two subclasses of
BasePage
specific to your application.
Often your application will have a consistent navigational border on some
or all pages that can be supported by the base class.
Many applications have one set of pages that are visible
to unidentified guests, and a second section that is visible once the user logs
in. A base class for the second set of pages could override the
validate()
method to redirect to a login page
if the user is not already logged in.