본문 바로가기

책 리뷰/엘레강트 오브젝트

(11)
엘레강트 오브젝트 [2장 - (1)] ⌗ 엘레강트 오브젝트 책을 리뷰해보도록 하겠습니다. 책의 내용은 다양한 언어로 되어있지만, 저는 예시 코드로 Typescript 를 사용해 제 사족을 조금씩 붙일 예정입니다. Chapter2. Education 이번 챕터의 메인 주제는 '객체는 작아야 한다' 입니다. 객체가 작아야만 유지보수에 용이한 우아한 객체라고 할 수 있습니다. 그렇게 만들 수 있는 방법을 보도록 하겠습니다. 가능하면 적게 캡슐화하세요 4개 또는 그 이하의 객체를 캡슐화할 것을 권장합니다. 더 많은 객체를 캡슐화해야 한다면, 클래스에 문제가 있는 것이기 때문에 리팩토링이 필요하다고 볼 수 있습니다. class Cash { private digits: number; private cents: number; private currenc..
엘레강트 오브젝트 [1장 - (2)] ⌗ 엘레강트 오브젝트 책을 리뷰해보도록 하겠습니다. 책의 내용은 다양한 언어로 되어있지만, 저는 예시 코드로 Typescript 를 사용해 제 사족을 조금씩 붙일 예정입니다. 생성자 하나를 주 생성자로 만드세요 class Cash { private dollars: number; public constructor(dollars: number) { this.dollars = dollars; } } constructor(생성자) 는 새로운 객체에 대한 진입점입니다. 위 예시처럼 생성자는 몇 개의 인자들을 전달받아 어떤 일을 수행한 후 객체를 준비시킵니다. 이 책의 저자는 올바른 클래스의 설계 결과물로 많은 수의 생성자와 적은 수의 메서드를 얘기하고 있습니다. 이 책에선 예시에 Java 코드를 활용해 여러 개의..
엘레강트 오브젝트 [1장 - (1)] ⌗ 엘레강트 오브젝트 책을 리뷰해보도록 하겠습니다. 책의 내용은 다양한 언어로 되어있지만, 저는 예시 코드로 Typescript 를 사용해 제 사족을 조금씩 붙일 예정입니다. Chapter1. Birth if (price < 100) { const extra: Cash = new Cash(5); price.add(extra); } 객체는 자신의 가시성 범위 안에서 살아갑니다. 위 예제에서 if 블록 안에서만 extra 라는 객체를 볼 수 있기 때문에, if 블록 내부가 extra 객체의 가시성 범위가 됩니다. 객체는 살아있는 유기체이기에 가시성 범위가 중요하고, 살아있게 만들기 전에 객체의 환경을 정의해야 합니다. 무엇이 객체 외부에 있고, 내부에 남아있는지를 구분하는 것으로 이 주제를 시작합니다. -e..