반응형

엘레강트 17

[엘레강트 오브젝트] 2-3장 항상 인터페이스를 사용하세요

이 글은 엘레강트 오브젝트 새로운 관점에서 바라본 객체지향 도서를 보며 스터디한 글입니다. 책에서 주장하는 내용을 정리하였으며 예제들은 모두 코틀린 코드로 변환하여 작성하였습니다. 토론하기 항상 인터페이스를 사용하세요..? 너무 비현실적인거 아닌가? 결합한다. 객체들은 서로를 필요로 합니다. 설계 시작단계에서는 객체가 어떤 일을 수행하고 다른 객체에게 어떤 서비스를 제공하는 지를 알아야하기 때문에 결합이 유용합니다. 하지만 시간이 지나면서 객체 사이의 강한 결합도가 심각한 문제가 되곤 합니다. 인터페이스는 상호작용하는 다른 객체를 수정하지 않고도 해당 객체를 수정할 수 있도록 만들 수 있습니다. 객체가 다른 객체와 의사소통하기 위해 따라야하는 계약을 일컫습니다. interface Cash { fun mu..

Study/object 2021.08.17

[엘레강트 오브젝트] 2-2장 최소한 뭔가는 캡슐화하세요

이 글은 엘레강트 오브젝트 새로운 관점에서 바라본 객체지향 도서를 보며 스터디한 글입니다. 책에서 주장하는 내용을 정리하였으며 예제들은 모두 코틀린 코드로 변환하여 작성하였습니다. 토론하기 아무것도 캡슐화하지 않은 클래스 정적 메서드와 동일하며 객체지향 프로그램 관점에서는 잘못된 설계입니다. class Year { fun read() = System.currentTimeMillis() / (1000 * 60 * 60 * 24 * 30 * 12) - 1970 } 예제에서 클래스의 모든 객체는 동일 아무런 상태를 가지고 있지 않으며 행동만을 포함 read() 메서드에서 정적 메서드를 사용 ( 순수한 OOP에서는 정적 메서드를 사용하지 않음 ) 실행으로 부터 인스턴스 생성 고립 생성자에서만 new 연산자를 허..

Study/object 2021.08.16
728x90
반응형