본문 바로가기
Professional Engineer/SE

정보 은닉(Information Hiding)

by 코드네임피터 2024. 8. 2.
반응형

내부 구현정보, 데이터 보호위해 은닉개체공용 인터페이스로만 접근가능한 특징


1. 클래스 정의:
   - 관련 데이터와 메서드를 그룹화하여 클래스를 생성합니다.
   - 추상화: 복잡한 시스템에서 핵심적인 개념이나 기능을 추출합니다.

2. 접근 제어자 사용:
   - private, protected, public 등의 접근 제어자로 멤버의 가시성을 제한합니다.

3. 캡슐화 적용:
   - 데이터(속성)를 private으로 선언합니다.
   - public 메서드(getter/setter)를 통해 데이터에 접근합니다.
   - 데이터와 그 데이터를 처리하는 메서드를 하나의 단위로 묶습니다.

4. 추상 클래스 및 메서드 정의:
   - 추상화를 구현하기 위해 추상 클래스와 추상 메서드를 사용합니다.
   - 공통된 특성을 추상 클래스로 정의하고, 구체적인 구현은 하위 클래스에 위임합니다.

5. 인터페이스 정의 및 구현:
   - 클래스의 공개 메서드만을 선언하는 인터페이스를 정의합니다.
   - 인터페이스를 통해 다형성을 구현하고, 느슨한 결합을 촉진합니다.

6. 상속 및 업캐스팅:
   - 공통 특성을 가진 상위 클래스를 정의하고 하위 클래스가 상속받게 합니다.
   - 업캐스팅: 하위 클래스의 객체를 상위 클래스 타입으로 참조하여 사용합니다.
   - 이를 통해 코드의 재사용성을 높이고 다형성을 구현합니다.

7. 다형성 활용:
   - 인터페이스나 추상 클래스를 이용해 다형성을 구현합니다.
   - 같은 메서드 호출로 다양한 객체의 고유한 행동을 수행할 수 있게 합니다.

8. 불변성 고려:
   - 가능한 경우, 객체의 상태를 변경할 수 없게 만들어 데이터 무결성을 보장합니다.

9. 디자인 패턴 적용:
   - 정보 은닉과 관련된 디자인 패턴(예: 팩토리 패턴, 빌더 패턴 등)을 적절히 사용합니다.

반응형

댓글