OO Concept: Abstraction & Encapsulation


Object Oriented methodology is the latest and most powerful way to analyse, design, implement, evolve and maintain complex software systems. It has developed partly by building on lessons learned on earlier methodologies such as SASD (Structured Analysis and Structured Design) and partly by understanding the basic rules of complex systems that arise in nature. By examining successful complex systems, both in artificial and natural, it is at once apparent that the complexity is not arbitrary but highly structured. Such systems can be broken down into sub-systems having internal complexity but displaying a much simpler form externally. Individual sub-systems can, in turn, be broken down into small sub-systems. Each time the same theme recurs: a system has internal complexity but externally simplicity. These are the twin pillars of Encapsulation and Abstraction on which OO is built. Encapsulation is the hiding of internal complexity and Abstraction is the presentation of simple concept (or object) to the external world. Consider a neutrino generator object. Internally it may be based on a complex physical model, but externally it should be usable by someone who neither knows or cares about this complexity and simply wants a source of neutrino tracks.
Go Back to the The C++ Crib Top Page

If you have any comments about this page please send them to Nick West