본문 바로가기

스터디/객체지향3

일급 컬렉션이 뭘까?? 일급 컬렉션… 몇 번 들어봤지만, 아직 잘 와닿지는 않습니다. 이번 기회에, 정학히 왜 써야하는 지 어떤 상황에서 써야하는 것인 지에 대하여 공부해보도록 하겠습니다. ‘객체지향적으로, 리팩토링하기 쉬운 코드로 가려면 일급 컬렉션이 필요하다.’ 라고 합니다. 이에대하여 알려면, 일급 컬렉션이 무엇이진부터 알아야합니다. 우선, 일급 컬렉션은 영어로 First Class Collection입니다. 우선, 일급 컬렉션이 되려면, 컬렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야합니다. public class Baseballs { private final List baseballs; public Baseballs(List baseBalls){ this.baseBalls = baseBalls; } } 정리하.. 2023. 2. 28.
추상화 - 인터페이스, 추상 클래스 추상화란 무엇일까?? 추상의 사전적 의미는 "사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것"이다. 그렇다면, 객체지향에서의 추상화란 어떤 의미일까?? 추상의 사전적 의미와 같은 맥락으로 객체지향에서 추상화는 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 의미합니다. 추상화를 사용했을 때 이점은 뭘까?? 추상화를 사용하면, 요구사항의 정책을 높은 수준에서 서술이 가능합니다. 추상화를 사용하면, 설계가 유연해집니다. 이게 무슨 말일까??? 아래에 다음과 같은 요구사항이 있다고 하자! 감사일기를 작성하면, 리워드 지급 정책에 따라 사용자에게 리워드가 지급됩니다. 여기서, 리워드 지급 정책은 동일 리워드 지급 정책, 외부 조건에 따라 리워드가 달라지는 정책 등을 추상화.. 2023. 2. 20.
상속과 합성을 언제 사용해야할까? 현재, 조영호님의 '오브젝트'라는 책을 읽으며 공부를 하고 있습니다. 책을 읽으면서 상속과 합성이라는 주제에대해 정리해보고 싶어 글을 작성하였습니다! 상속과 합성에 대해서 이야기하기 전에 의존성에 대해서 간단히 정리해보겠습니다. 의존성이란? 객체간의 의존성이란 곧 객체의 협력을 의미하는 데, 코드 상에서 파라미터나 리턴값 또는 지역변수 등으로 다른 객체를 참조하는 것을 말한다. A 객체가 B 객체를 참조하고 있다고 하자. 만약, B 객체에 변경이 일어난다면 A 객체에도 영향을 미칠 수 있다. 우리는 이러한 영향을 ‘의존성 전이’라고 한다. 의존성 전의를 최소화하기 위해서는 컴파일 의존성이 아닌 런타임 의존성을 이용해야한다. 그렇다면, 컴파일 의존성은 무엇이고 런타임 의존성은 무엇일까? 컴파일 시간 의존성.. 2023. 2. 20.
728x90