It should be easy to customize the basic user interface controls that appear in the foundation classes. Objects in the IFC library have clearly defined override points and modular design. Reliance on primitive methods. Whenever possible, there should one primitive method through which all related methods flow. For example, all modifications to bounding rectangles flow through one primitive method, the setBounds method of the View class.
Primitive methods provide convenient override points for catching and modifying behavior.
Easy creation of user interfaces. When you construct interfaces, the foundation classes should do most of the hard work. The IFC library contains a rich selection of user interface objects with predefined actions and operations. The interface objects contain the functionality that you want and need, right out of the box, allowing you to concentrate on your application. Although application components should be useful out of the box, they should also be easy to customize.