sunjoolee
로그인
sunjoolee
로그인
[Clean Code] 6. 객체와 자료구조
⋆。♡゚☁︎ ⋆。선주 ゚☁︎ ゚。♡⋆。
·
2024년 4월 10일
팔로우
1
CLEAN CODE
1
Clean Code
목록 보기
6/7
[Clean Code] 6. 객체와 자료구조
자료 추상화
변수를 private으로 선언하더라도 각 값마다 get, set을 제공한다면 구현을 외부로 노출하는 셈
->
추상 인터페이스
를 제공해 사용자가 구현을 모른 채 조작할 수 있어야
자료를 세세하게 공개 X ->
추상적인 개념으로 표현
자료/객체 비대칭
객체
클래스: 자료를 다루는
함수
만 공개
자료구조 클래스: 자료 그대로 공개, 별다른 함수 제공 X
절차적인 코드: 기존 자료구조 변경 없이 새 함수를 추가하기 쉽다
객체 지향 코드: 기존 함수 변경 없이 새 자료구조를 추가하기 쉽다
분별 있는 프로그래머는
모든 것이 객체라는 생각이 미신임을 안다
-> 때로는 절차적인 코드가 적합
디미터 법칙
잘 알려진
휴리스틱
모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다
"클래스 C의 메서드 f는 다음과 같은 객체의 메서드만 호출해야 함"
클래스 C
f가 생성한 객체
f 인수로 넘어온 객체
C 인스턴스 변수에 저장된 객체
위 객체에서 허용된 메서드가 반환하는 객체의 메서드는 호출하면 X
자료 전달 객체
자료구조 클래스의 전형적인 형태 = 공개 변수만 있고 함수가 없는 클래스
=
자료 전달 객체(Data Transfer Object, DTO)
흔히 데이터베이스에 저장된 가공되지 않은 정보를 애플리케이션 코드에서 사용할 객체로 변환하는 단계에서 가장 처음으로 사용하는 구조
bean 구조
: 자료 전달 객체의 일반적인 형태
private 변수를 get/set 함수로 조작
활성 레코드
: 자료 전달 객체의 특수한 형태
private 변수를 get/set 함수로 조작
대개 save나 find와 같은
탐색 함수
제공
결론
새로운 자료 타입을 추가하는 유연성 필요 -> 객체 지향 코드 적합
새로운 동작을 추가하는 유연성 필요 -> 절차적인 코드 적합
⋆。♡゚☁︎ ⋆。선주 ゚☁︎ ゚。♡⋆。
Be able to be vulnerable, in search of truth
팔로우
이전 포스트
[CleanCode] 5. 형식 맞추기
다음 포스트
[Clean Code] 7. 오류 처리
0개의 댓글
댓글 작성