Objects (코드로 이해하는 객체지향 설계) Chapter 2

Young Soo Oh·2023년 7월 2일
0

오브젝트

목록 보기
2/2
post-thumbnail

Chapter 2. 객체지향 프로그래밍

예제) 영화 예매

  • 할인 조건
    • 예) 10번째로 상영 시작 시간 예매한 고객에게 할인
    • 예) 조조할인 아침10~오후1시까지 예매한 고객에게 할인
  • 할인 정책
    • 예) 금액 할인 정책 (amount)
    • 예) 비율 할인 정책 (percentage)

대부분의 사람은 클래스를 결정한 후에 클래스에 어떤 속성과 메서드가 필요한지 고민한다.

하지만, 객체 지향은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을수있다.

첫째, 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라.

둘째, 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다.

도메인 이란, 문제를 해결하기위해 사용자가 프로그램을 사용하는 분야를 가리킨다.

일반적으로 클래스의 이름은 대응되는 도메인 개념의 이름과 동일하거나 적어도 유사하게 지어야한다.

클래스 생성시

외부에서는 객체의 속성에 직접 접근할수 없고(private) public 메소드를 통해서만 내부 상태를 변경할 수 있게 해야 한다.

이유) 경계의 명확성이 객체의 자율성을 보장하기 때문이다. + 프로그래머에게 구현의 자유를 제공하기 때문

캡슐화 - 데이터와 내부 기능을 함께 묶는것

캡슐화와 접근제어

  • 퍼블릭 인터페이스 (public interface) - 외부에서 접근 가능
  • 구현 (implementation) - 오직 내부에서만 접근 가능

프로그래머의 자유

  • 클래스 작성자
    • 새로운 데이터 타입을 프로그램에 추가
  • 클라이언트 프로그래머
    • 필요한 클래스들을 엮어서 애플리케이션을 빠르고 안정적으로 구축

객체의 변경을 관리할 수있는 기법 = 접근제어

0개의 댓글