e.den
eden.dev.log
e.den
전체 방문자
오늘
어제
  • 분류 전체보기 (57)
    • 슬기로운 취준 생활 (1)
    • Study (30)
      • Swift (7)
      • iOS (6)
      • Java (2)
      • Spring (6)
      • Algorithm (9)
    • Coding Test (8)
      • Swea (0)
      • Baekjoon (8)
      • Programmers (0)
    • 삽질기 (3)
    • 독서록 (15)
      • Clean Architecture (5)
      • Clean Code (10)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ios
  • 클린코드
  • reduce
  • java
  • property
  • 프로퍼티
  • flatmap
  • 자료구조
  • initializer
  • 고차함수
  • CGLayer
  • cleancode
  • Algorithm
  • CoreAnimation
  • Map
  • 부스트코스
  • RunLoop
  • 클린아키텍처
  • Spring
  • mybatis
  • 알고리즘
  • lombok
  • UITextView
  • compactMap
  • 정렬
  • Filter
  • swift
  • MySQL
  • CleanArchitecture
  • lifecycle

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
e.den

eden.dev.log

독서록/Clean Code

[Clean Code] 6장 객체와 자료 구조

2022. 4. 20. 14:37

자료 추상화

자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다.

인터페이스나 조회/설정 함수만으로는 추상화가 이뤄지지 않는다.

개발자는 객체가 포함하는 자료를 표현할 수 있는 가장 좋은 방법을 심각하게 고민해야 한다.

 

(자료 구조를 사용하는) 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다.

반면, 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다.

다시 말해, 객체 지향 코드에서 어려운 변경은 절차적인 코드에서 쉬우며, 절차적인 코드에서 어려운 변경은 객체 지향 코드에서 쉽다.

 

디미터 법칙

객체는 조회 함수로 내부 구조를 함부로 공개하면 안 된다는 법칙.

 

디미터 법칙은 "클래스 C의 메서드 f는 다음과 같은 객체의 메서드만 호출해야 한다"라고 주장한다.

  • 클래스 C
  • f가 생성한 객체
  • f 인수로 넘어온 객체
  • C 인스턴스 변수에 저장된 객체

하지만 위 객체에서 허용된 메서드가 반환하는 객체의 메서드는 호출하면 안 된다.

 

객체라면 뭔가를 하라고 말해야지 속을 드러내라고 말하면 안 된다.

내부 구조를 드러내지 않아야 하며, 메서드는 자신이 몰라야 하는 여러 객체를 탐색할 필요가 없다.

 

(어떤) 시스템을 구현할 때, 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다.

다른 경우로 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다.

우수한 소프트웨어 개발자는 편견 없이 이 사실을 이해해 직면한 문제에 최적인 해결책을 선택한다.

저작자표시 비영리 변경금지 (새창열림)

'독서록 > Clean Code' 카테고리의 다른 글

[Clean Code] 8장 경계  (0) 2022.04.25
[Clean Code] 7장 오류 처리  (0) 2022.04.20
[Clean Code] 5장 형식 맞추기  (0) 2022.04.19
[Clean Code] 4장 주석  (0) 2022.04.18
[Clean Code] 3장 함수  (0) 2022.04.14
    '독서록/Clean Code' 카테고리의 다른 글
    • [Clean Code] 8장 경계
    • [Clean Code] 7장 오류 처리
    • [Clean Code] 5장 형식 맞추기
    • [Clean Code] 4장 주석
    e.den
    e.den
    문제를 본질적으로 접근하자

    티스토리툴바