본문 바로가기
SAP/Complete ABAP

8.1 Procedural Programming versus Object-Oriented Programming

by Radler 2023. 2. 5.

ABAP은 절차지향 + 객체지향 모두 성격을 가지고 있는 하이브리드 언어이다.

절차지향 : 펑션모듈, 서브루틴
객체지향 : 클래스, 메서드

절차지향적인 프로그램에서는 수행기능(behavior, 이벤트와 메서드로 구현되는 것)과 속성(attribute, data)이 분리되어있다. 
객체지향적인 프로그램에서는 수행기능과 속성이 함께 연결되어있어, 보다 추상/구체적인 오브젝트를 생성할 수 있다.  

ABAP 프로그램은 특정 펑션 그룹에 속한 글로벌 변수에 접근하기 위해서는 그 그룹에 속한 펑션 모듈을 콜해야한다. 

펑션 vs 클래스/메서드
펑션 : 비슷한 기능들을 하는 오브젝트들을 만들기 위한 generic한 템플릿을 만들 수 없음. 
콜 한 펑션의 기능만 가져다 쓸 뿐.
클래스/메서드 :  비슷한 기능들을 하는 오브젝트들을 만들기 위한 generic한 템플릿을 만들 수 있음.

OOP의 특징


*Delegation of Tasks 
각각의 객체는 server(운전자)/client(자동차)로서 특정 task를 수행할 수 있다. 
이를 위해서는, server 역할 객체가 프로토콜(인터페이스)를 상세히 기술해야한다. 

*Encapsulation
시스템 내 컴포넌트가 특정 객체의 implementaion을 볼 수 없게(접근할 수 없게) 함.
따라서, 개발자는 외부 의존성과 상관없이 private section 내 컴포넌트들을 변경할 수 있다. 
(여기서 컴포넌트란 속성, 메서드, 이벤트, 상수, 타입, 인터페이스 등을 의미한다. )

*Inheritance
서브 클래스는 슈퍼클래스의 attribute와 methods를 가져와 변경/사용할 수 있다. 

*Polymorphism
한 클래스의 인스턴스와 다른 클래스의 인스턴스는 같은 메시지에 다르게 반응할 수 있다. 

*Event Controlling 
메시지를 특정 객체에 직접 보내는 대신에, 이벤트를 일으킨다(trigger). 
다른 객체들도 이러한 이벤트에 반응할 수 있다. 따라서, Polymorphism을 가능하게 한다. 

모르는 단어 정리
Redundancy : 중복

'SAP > Complete ABAP' 카테고리의 다른 글

8.6 EXTENSIBLE MARKUP LANGUAGE(XML)  (0) 2023.02.22
8.5 Polymorphism  (0) 2023.02.22
8.4 Inheritance  (1) 2023.02.22
8.3 Encapsulation  (0) 2023.02.05
8.2 Principles of OOP  (0) 2023.02.05