SE450: Some important terms [23/41] ![]() ![]() ![]() |
Encapsulation: OO programming requires encapsulation. The characteristics and behavior of the object are joined in one module, but the implementation of the module is separated from its contractual interface, and hidden from clients of the module.
Abstraction: The behaviors, or functionalities of a module (or class) should be characterized in a succinct and precise description known as the contractual interface of the module, i.e. the contractural interface captures the essence of the behavior of the module. It is dealing with only the parts of a real-world entity that are essential to interact with it inside the world of software.
Association: a general binary relationship.
Aggregation: has-a or part-whole relationship between classes.
Composition: exclusive ownership and control of the lifetime of the component class by the aggregate class.
Generalization: inheritance, extension - the grouping of common traits among different entities.
Polymorphism and dynamic binding:The ability to interchange modules dynamically without affecting clients. Many modules can all have the same type, and be used in the same code.
Design Pattern: describes a problem which occurs repeatedly in an environment and then describes a solution to problem in such a way that it can be used many times over, without doing it the same way twice.
We'll look into all of these in more detail in the coming weeks