Skip to content

Progress Object Abstraction

hajdam edited this page Nov 17, 2024 · 2 revisions

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

Clone this wiki locally