반응형 Public3 [엘레강트 오브젝트] 3.1 5개 이상의 public 메서드만 노출하세요 이 내용은 엘레강트 오브젝트 를 읽으면서 정리한 내용을 포함하고 있습니다. 메소드 크기 정리 가장 우아하고, 유지보수가 가능하고, 응집력이 높으면서, 테스트하기도 용이한 객체는 작은 객체 이다. 메소드 크기 클래스의 크기를 정하는 기준으로 public 메서드(protected 메서드 포함)의 개수를 사용하기를 권장한다. 여기에서는 저자가 적절하다고 생각하는 객체의 public 메서드의 수는 5개이다. 구체적인 숫자를 언급한 이유는 public 메서드의 수에 제한이 있고, 그 제한이 매우 작다는 사실을 설명하기 위해서이다. 클래스를 작게 만들어서 얻는 이득으로는 무엇이 있을까? 다음 4가지의 장점이 있다. 우아함 유지보수성 응집도 테스트 용이성 가장 중요한 것은 유지보수성이다. 더 작은 클래스는 유지보수하.. 2023. 3. 12. [아이템16] public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. 인스턴스 필드들만 모아놓은 값 객체를 작성하는 경우가 종종 있습니다. 인스턴스 필드들만 모아놓은 객체 class Point { public double x; public double y; }이런 클래스는 단점은 다음과 같습니다. 데이터 필드에 직접 접근할 수 있으니 캡슐화의 이점을 제공하지 못합니다. API를 수정하지 않고는 내부 표현을 바꿀 수 없습니다. 불변식을 보장할 수 없으며, 외부에서 필드에 접근할 때 부수 작업을 수행할 수도 없습니다. 철저한 객체 지향 개발자는 이런 클래스를 상당히 싫어해서 필드들을 모두 private으로 바꾸고 public 접근자(getter)를 추가합니다. class .. 2022. 9. 18. [아이템15] 클래스와 멤버의 접근 권한을 최소화하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. 어설프게 설계된 컴포넌트와 잘 설계된 컴포넌트의 가장 큰 차이는 바로 클래스 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 얼마나 잘 숨겼느냐입니다. 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨, 구현과 API를 깔끔히 분리합니다. 정보 은닉 또는 캡슐화라고 하는 이 개념은 소프트웨어 설계의 근간이 되는 원리입니다. 기본 원칙 모든 클래스와 멤버의 접근성을 가능한 한 좁혀야 합니다. 소프트웨어가 올바로 동작하는 한 항상 가장 낮은 접근 수준을 부여해야 한다는 뜻입니다. 가장 바깥이라는 의미의 톱레벨 클래스와 인터페이스에 부여할 수 있는 접근 수준은 package-private와 publi.. 2022. 9. 18. 이전 1 다음 반응형