반응형

엘레강트 오브젝트 3

[엘레강트 오브젝트] 2-1장 가능하면 적게 캡슐화하세요.

이 글은 엘레강트 오브젝트 새로운 관점에서 바라본 객체지향 도서를 보며 스터디한 글입니다. 책에서 주장하는 내용을 정리하였으며 예제들은 모두 코틀린 코드로 변환하여 작성하였습니다. 이 책에서는 4개 또는 그 이하의 객체를 캡슐화할 것을 권장합니다. 내부에 캡슐화된 객체 전체를 가리켜 객체의 '상태' 또는 ' 식별자' 라고 부릅니다. class Cash( private val digits: Int, private val cents: Int, private val currency: String ) Cash 클래스는 3개의 객체를 캡슐화하고 있습니다. 반대로 3개의 객체가 모여서 Cash 클래스의 객체를 식별할 수 있습니다. 상태 관점으로 바라보는 객체 val CashA = Cash(29, 92, "USD")..

Study/object 2021.08.12

[엘레강트 오브젝트] 1-3장 생성자에 코드를 넣지 마세요

이 글은 엘레강트 오브젝트 새로운 관점에서 바라본 객체지향 도서를 보며 스터디한 글입니다. 책에서 주장하는 내용을 정리하였으며 예제들은 모두 코틀린 코드로 변환하여 작성하였습니다. 토론하기 인자에 손대지 말라 인자에 손대는 클래스 먼저 인자에 손대는(?) 코드를 살펴보겠습니다. class Cash( private val dollars: Int ) { constructor(dollars: String): this(Integer.parseInt(dollars)) } 객체 초기화에는 코드가 없어야하고 인자를 건드리면 안됩니다. 필요하다면 인자를 다른 타입의 객체로 감싸거나 가공하지 않은 형식으로 캡슐화해야합니다. 위 코드를 수정한 예시를 살펴보겠습니다. 인자에 손대지 않는 클래스 class Cash( priv..

Study/object 2021.08.11

[엘레강트 오브젝트] 1-1장 -er로 끝나는 이름을 사용하지 마세요.

이 글은 엘레강트 오브젝트 새로운 관점에서 바라본 객체지향 도서를 보며 스터디한 글입니다. 책에서 주장하는 내용을 정리하였으며 예제들은 모두 코틀린 코드로 변환하여 작성하였습니다. 토론하기 클래스 먼저 클래스에 대해서 간략하게 알아봅니다. 일반적으로 클래스가 객체를 인스턴스화합니다. 클래스를 객체의 템플릿으로 설명하지만 잘못된 설명입니다. 클래스는 객체의 팩토리이다. 클래스는 객체를 꺼내거나 반환할 수 있는 위치이기 떄문에 클래스를 저장소 또는 웨어하우스라고 불러야 합니다. 객체가 살아있는 생명체라면 클래스는 객체의 어머니 본론 클래스 명 짓기에 대해 살펴보겠습니다. class CashFormatter( val dollars: Int ) { fun format(): String { return Strin..

Study/object 2021.08.10
728x90
반응형