Skip to Content
Technical Articles
Author's profile photo Alwin van de Put

ABAP OO Design: Basic Terms Overview

This is an overview of the terms I found to be useful for OO design. That doesn’t mean other terms are not important, but for starting OO design, you could focus on these terms.

Software Architecture layers and Class Categories

  • Presentation layer
    • Application
    • Controller
    • View
    • Model
  • Service layer (= Interface layer)
    • Server proxy
    • Client proxy
  • Business layer
    • Business Object
    • Business Object Factory
    • Sub Business Object
    • Workflow object
    • Process object
    • Workflow Business Object wrapper
    • Converter object
    • Utility object
    • Data Provider object
  • Persistence layer
    • Data Access object
  • Database layer
    • Queries
    • Database tables
  • Others
    • Formatter
    • Converter
    • Utility

OO terms

  • Entity
  • Object = Entity + Behavior + Instantiation
  • Object behavior
  • Object instance
  • Class = Entity + Behavior
  • Class definition
  • Class implementation
  • Class interface
  • Relations
    • Parent / child relation (composition / association)
    • Super class / sub class relation / Class interface
  • Business Object = Objects for the Business like Sales order, Customer and Material
  • Entity = Real world object about which you are storing data

Object Oriented Principles (OOP)

  • Object instantiation
  • Encapsulation / data hiding
  • Inheritance / Generalization / Specialization
    • Super to Sub class relationship
    • Override / redefine
    • Polymorphism
  • Realization (class interface)
    • Class Interface to Implementing class relationship
  • Parent / child relations
    • Composition / Aggregation (Sales order head –> Sales order item)
      • Parent to Child relationship
    • Association (Sales order item –> Material)
      • Associating to Associated class relationship
      • Client to Server class relationship
    • Dependency
      • Consumer to Provider class relationship
    • Cardinality
  • Abstraction / Class interface

SOLID Principles

  • S – Single-responsibility Principle
    A class has only one purpose.
  • O – Open-closed Principle
    A class is Open for extension but Closed for modification.
  • L – Liskov Substitution Principle
    A sub class must use every public method of the Super class or Class interface. (Otherwise use class interfaces.)
  • I – Interface Segregation Principle
    A class should not be forced to implement an interface it does not use.
  • D – Dependency Inversion Principle
    Entities must depend on abstractions (=Class interface or Super class), not on concretions.

UML diagrams

  • Most important
    • Class diagram
  • Could also be used but harder to maintain manually
    • Sequence diagram
    • Package diagram
  • And more, which I don’t use.

Patterns

There are many design patterns and it is hard to remember and use them all.

I don’t use many patterns, but some are very important to me.

If you really want to studie more design patterns, which is a good choice, than the design patterns of “The Gang of Four” is a good starting point. See Wiki.

Presentation layer

  • MVC model
  • Proxy

Creational patterns

  • Abstract factory
  • Factory method
  • Singleton

Structural patterns

  • Facade
    • In case of a complex Server object with many sub objects,
      the Server object calls all the sub objects.
    • The Client object calls only the root Server object.
  • Proxy
    • Is a surrogate class / wrapper class for an another class
    • Types:
      • Remote proxy – intent is calling remote logic
      • Virtual proxy
      • Protection proxy
    • ABAP examples: XI-SOAP Client ABAP Proxy / Server Proxy and OData Proxy class
  • Adapter

Behavioral patterns

  • Observer (= eventing)
  • Strategy

And there many more, see for more patterns seeĀ Wiki – Software Design Patterns.

And for some fun and educational videos about patterns see Christopher Okhravi.

Anti-patterns

  • God object
  • Object orgy
  • Sequential coupling
  • Yo-yo problem
  • Arrow pattern

And there many more…

Important OO related topics

  • TDD – Test Driven Development (Test First Development)
    • ABAP unit
    • Test doubles

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.