Encapsulation

Creator
Creator
Alan JoAlan Jo
Created
Created
2021 Mar 22 5:18
Editor
Editor
Alan JoAlan Jo
Edited
Edited
2023 Sep 14 5:39
Refs

Capsulization, Information Hiding

keep details hidden

낮은 결합도와 높은 응집도를 유지할 수 있도록 설계

= 추상화 (멤버 변수 & 멤버함수 추가)
= 접근제한 지정
객체지향의 핵심인 캡슐화를 잘하기 위한 가장 간단한 방법은 추상화를 잘 하는 것
추상화는 데이터 위주의 성질(고전적 OOP), 형태(타입), 상태(데이터 주도 설계)와 관계 중심인 시간(절차지향), 행동(함수형), 정의(논리형), 상황(도메인 주도 설계, AOP) 등으로 나누어 생각할 수 있음
 
 

Rules

  • All member variables should be private
  • Basic class operations should be
    • Public member functions
    • Friend or ordinary functions
    • Overloaded operators
  • Make class implementation unavailable to users of class
 
so separate interface file and implementation file
 

Has-a

member relation unlike
OOP Inheritance
 
 
 
 
 

Recommendations