노개북(노마드코더 Challenges)-클린코드 DAY7

mingki·2022년 5월 3일
0

6장.객체와 자료 구조

❤️ 절차적 코드와 객체지향 코드의 차이점

  • 객체와 자료 구조는 근본적으로 양분 된다
  • 자료 구조를 사용하는 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다.
  • 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다
  • 절차적인 코드는 새로운 자료 구조를 추가하기 어렵다
  • 객체 지향 코드는 새로운 함수를 추가하기 어렵다. 그러려면 모든 클래스를 고쳐야 한다
    => 객체 지향 코드의 어려운 변경은 절차적인 코드에서 쉬우며, 절차적인 코드에서 어려운 변경은 객체 지향 코드에서 쉽다

❤️ 다미터 법칙

  • 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다. 객체는 자료를 숨기고 함수를 공개한다
  • 자료 구조는 무조건 함수 없이 공개 변수만 포함하고 객체는 비공개 변수와 공개 함수를 포함한다면 문제는 훨씬 간단하다
  • 잡종 구조 : 절반은 객체, 절반은 자료 구조 인 코드 -> 새로운 함수는 물론이고 새로운 자료 구조도 추가하기 어렵다 양쪽의 단점만 모아놓은 구조다.

❤️ 자료 전달 객체

  • DTO는 DB에 저장된 가공되지 않은 정보를 애플리케이션 코드에서 사용할 객체로 변환하는 일련의 단계에서 가장 처음으로 사용하는 구조체다
  • 활성 레코드 : 자료 구조로 취급하고 비지니스 규칙을 담으면서 내부 자료를 숨기는 객체는 따로 생성한다

★ 결론

새로운 자료 타입을 추가하는 유연성이 필요하면 "객체"가 더 적합하고, 새로운 동작을 추가하는 유연성이 필요하면 "자료 구조"와 "절차적인 코드"가 더 적합하다

‼️ 나의 생각

내가 그동안 작성한 코드는 잡종 구조 인것 같다. 그래서 인지 새로운 함수 OR 자료 구조를 추가하려고 할때 고쳐야 할것도 많고 시간도 오래걸린다. 처음 코드를 작성 할때 확실한 구조를 잡고 작성 하도록 노력해야겠다

profile
비전공초보개발자

0개의 댓글