본문 바로가기

조영호2

훌륭한 인터페이스의 특징 (오브젝트 6장) 1. 디미터 법칙 (데메테르 법칙) 디미터의 법칙은 연속적인 메소드 호출을 하지 말라는 조언으로 설명된다. 하지만 이 법칙을 교조적으로 수용해 연속적인 메소드 호출을 무조건 금지해서는 안 된다. 디미터 법칙은 캡슐화 원칙과 관련이 있고, 따라서 특별한 경우에는 연속적인 메소드 호출이 더 나은 디자인일 수도 있다. 캡슐화란 인터페이스 뒤로 구현의 상세 사항을 전부 숨기는 것을 말한다. 적절하게 인터페이스가 설계되었다면, 내부 구현 정보를 최대한 숨겨 독립적이고 자율적인 객체를 만들 수 있다. 만약 인터페이스를 적절하게 설계하지 않고 내부의 구현 정보를 드러내면 어떻게 될까? 아래와 같은 코드를 생각해보자. public class Screening { private Movie movie; public Mov.. 2023. 12. 8.
책임과 역할에 대한 상세한 이야기 (오브젝트 3장) 1. 역할, 책임, 협력 조영호님의 에서는 객체지향의 핵심 원칙을 역할, 책임, 협력의 구조로 소개한다. 간단히 말해 소프트웨어를 각자의 '책임'을 수행하며 서로 '협력'하는 '역할'들로 명세를 짜는 것이다. 역할과 책임에 대한 구체적인 실천은 런타임에 '객체(object)'가 수행한다. 이미 위 포스팅 링크에서 많은 내용을 정리했다. 따라서 여기서는 같은 저자의 챕터 3장에 나오는 설명 중 새롭게 알게 된 사실만 따로 정리하려 한다. 2. 책임 할당: 정보 전문가 패턴(Information Expert) 좋은 객체지향 설계의 핵심은 책임을 적절한 객체에게 할당하는 것이다. 크레이그 라만(Graig Larman)은 객체의 책임을 크게 하는 것(doing)과 아는 것(knowing)의 두 가지 범주로 나누.. 2023. 12. 7.