티스토리 뷰

요약

6. 객체와 자료 구조

객체: 동작을 공개하고 자료를 숨김

자료구조: 동작 없이 자료를 노출

절차 지향

새로운 함수가 필요할 때

기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉬움

새로운 자료구조를 추가하긴 어려움

객체 지향

새로운 자료타입이 필요할 때

기존 동작을 변형하지 않으면서 새 객체 타입을 추가하기 쉬움

새 함수를 추가하기 어려움

디미터 법칙

모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙

즉, 객체는 자료를 숨기고 함수를 공개한다. (조회 함수로 내부 구조를 공개하면 안 됨)

클래스 C의 메서드 f는 클래스C, f가 생성한 객체, f인수로 넘어온 객체, C 인스턴스 변수에 저장된 객체의 메서드만 호출해야 한다.

 

자료구조체(자료 전달 객체, DTO)

공개 변수만 있고 함수가 없는 클래스

데이터베이스와 통신하거나 소켓에서 받은 메시지의 구문을 분석할 때 유용

 

 

발췌

객체와 자료구조는 근본적으로 양분한다.

분별 있는 프로그래머는 모든 것이 객체라는 생각이 미신임을 잘 안다.

객체 지향 프로그래밍에 대한 장점만 들었지만 모든 코드는 하나의 프로그래밍 기법으로만 가능하진 않는다.

각각 상황에 맞게 절차 지향과 단순한 함수 또는 객체 지향과 클래스를 적절히 사용하는 것이 좋다.

 

 

메모

6장은 짧은 챕터였으나 실질적으로 코드를 작성할 때 놓치기 쉬운 예시들을 알려주었다. JAVA 를 기준으로 설명하고 있어 중간중간 스킵할 때도 있긴 했지만, 전반적으로 크게 다르지 않아 저자의 방향성을 익히며 읽고 있다.

초기 다짐은 직접 코드까지 실습하는 거였는데 여러 상황상 마땅치 않아서 추후에 타입스크립트 / 자바스크립트로 작성한 예시를 보면서 복습해야 할 듯 하다.

댓글