Concept: Object Abstraction
This document is part of the eXtensible Binary Universal Protocol project documentation. Provides description of object abstraction concept which might be used with block type specifications.
Object Abstraction
While lower levels are mostly relational on it's data representation nature, it would be useful to have also capabilities of object-oriented programming paradigm such as data abstraction, encapsulation, messaging, modularity, polymorphism, and inheritance.
As there are various nuances of object concept, only subset of object-oriented programming will be used for specification on this level.
- Immutable classes only
- Free methods
- No visibility (everything is public)
Type of Specification
As for block specification, there should be possible to define what type of data it represents. Types should include following items:
- Type (Pure abstract class)
- Class (Specific implementation of type)
- Transformation (Free Method)
- Constant
Type might have parameters and in such case is considered as similar to generic classes.
Example
Page Source