그룹 스터디 공부(IT 서적)/이펙티브자바

4장 클래스와 인터페이스

hanyugyeong 2023. 10. 31. 21:37
반응형
SMALL

아이템 15 클래스와 맴버의 접근 권한을 최소화 하라 

-> 아래의 블로그를 참조해서 공부했습니다  

https://velog.io/@alkwen0996/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-%EC%95%84%EC%9D%B4%ED%85%9C15-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%99%80-%EB%A9%A4%EB%B2%84%EC%9D%98-%EC%A0%91%EA%B7%BC%EA%B6%8C%ED%95%9C%EC%9D%84-%EC%B5%9C%EC%86%8C%ED%99%94%ED%95%B4%EB%9D%BC

 

[이펙티브 자바] 아이템15 | 클래스와 멤버의 접근권한을 최소화해라

정보은닉(캡슐화) > 잘 설계된 컴포넌트는 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 잘 숨겨 구현과 API를 분리한다. 오직 API를 통해 다른 컴포넌트와 소통하며 서로의 내부 동작 방

velog.io

 

아이템 16 public 클래스에서 public 필드가 아닌 접근자 메서드를 사용하라 

https://hyeon9mak.github.io/Effective-Java-item16/

 

[Effective-Java] 아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라

전체적인 스터디 내용은 JunHyeok96/effective-java에서 확인 가능!

hyeon9mak.github.io

아이템 17 변경 가능성을 최소화하라 

https://velog.io/@meme2367/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-%EC%95%84%EC%9D%B4%ED%85%9C-17-%EB%B3%80%EA%B2%BD-%EA%B0%80%EB%8A%A5%EC%84%B1%EC%9D%84-%EC%B5%9C%EC%86%8C%ED%99%94%ED%95%98%EB%9D%BC

 

 

[ 이펙티브 자바 ] 아이템 17 변경 가능성을 최소화하라

불변 클래스란 그 인스턴스의 내부 값을 수정할 수 없는 클래스. 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. String, 기본 타입의 박싱된 클래스, B

velog.io

 

아이템 18 상속보다는 컴포지션을 사용하라 

https://velog.io/@alkwen0996/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-%EC%95%84%EC%9D%B4%ED%85%9C17-%EC%83%81%EC%86%8D%EB%B3%B4%EB%8B%A4%EB%8A%94-%EC%BB%B4%ED%8F%AC%EC%A7%80%EC%85%98%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EB%9D%BC

 

[이펙티브 자바] 아이템18 | 상속보다는 조합(컴포지션)을 사용하라

상속의 위험성 상위 클래스와 하위 클래스가 모두 같은 프로그래머가 통제하는 패키지 안에서라면 상속도 안전한 방법이다. 확장할 목적으로 설계되거나 문서화도 잘 된 클래스도 마찬가지로

velog.io

 

아이템 19 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금하라 

https://sasca37.tistory.com/259

 

[이펙티브자바] 아이템19 : 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하

상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라 상속용 클래스는 재정의할 수 있는 메서드들을 내부적으로 어떻게 이용하는지 문서로 남겨야 한다. 클래스의 API로 공개

sasca37.tistory.com

아이템 20 추상 클래스보다는 인터페이스를 우선하라 

https://velog.io/@alkwen0996/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-%EC%95%84%EC%9D%B4%ED%85%9C20-%EC%B6%94%EC%83%81%ED%81%B4%EB%9E%98%EC%8A%A4%EB%B3%B4%EB%8B%A4%EB%8A%94-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%A5%BC-%EC%9A%B0%EC%84%A0%EC%8B%9C%ED%95%98%EB%9D%BC

 

[이펙티브 자바] 아이템20 | 추상클래스보다는 인터페이스를 우선시하라

자바 제공 다중 구현 메커니즘 자바가 제공하는 다중구현 메커니즘은 추상클래스와 인터페이스 두가지다. 자바8부터 인터페이스도 디폴트 메서드를 제공할 수 있게되어, 이제 두 메커니즘 모두

velog.io

아이템 21 인터페이스는 구현하는 쪽을 생각해 설계하라 

https://velog.io/@semi-cloud/Effective-Java-%EC%95%84%EC%9D%B4%ED%85%9C-21-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%8A%94-%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94-%EC%AA%BD%EC%9D%84-%EC%83%9D%EA%B0%81%ED%95%B4-%EC%84%A4%EA%B3%84%ED%95%98%EB%9D%BC

 

[Effective Java] 아이템 21 : 인터페이스는 구현하는 쪽을 생각해 설계하라

1) Default Method 자바 8 이전에는 기존 구현체를 깨뜨리지 않고는 인터페이스에 메서드를 추가할 방법이 없었지만, 자바 8부터는 디폴트 메소드 를 통해 인터페이스에 메서드를 추가하는 것이 가능

velog.io

아이템 22 인터페이스는 타입을  정의하는 용도로만 사용하라

https://velog.io/@injoon2019/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-%EC%95%84%EC%9D%B4%ED%85%9C22.-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%8A%94-%ED%83%80%EC%9E%85%EC%9D%84-%EC%A0%95%EC%9D%98%ED%95%98%EB%8A%94-%EC%9A%A9%EB%8F%84%EB%A1%9C%EB%A7%8C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%9D%BC

 

[이펙티브 자바] 아이템 22. 인터페이스는 타입을 정의하는 용도로만 사용하라

인터페이스는 자신을 구현한 클래스의 인스턴스를 참조할 수 있는 타입 역할을 하고, 즉 클래스가 어떤 인터페이스를 구현한다는 것은 자신의 인스턴스로 무엇을 할 수 있는지를 클라이언트에

velog.io

아이템 23 태그 달린 클래스보다는 클래스 계층구조를 활용하라. 

https://insight-bgh.tistory.com/408

 

[Effective Java] 아이템23 태그 달린 클래스보다는 클래스 계층구조를 활용하라

■ 태그 달린 클래스 두 가지 이상의 의미를 표현할 수 있으며, 그중 현재 표현하는 의미를 태그 값으로 알려주는 클래스를 본적이 있을 것 이다. 다음은 원과 사각형을 표현할 수 있는 클래스이

insight-bgh.tistory.com

아이템 24 맴버 클래스는 되도록 static으로 만들라

https://velog.io/@injoon2019/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-%EC%95%84%EC%9D%B4%ED%85%9C-24.-%EB%A9%A4%EB%B2%84-%ED%81%B4%EB%9E%98%EC%8A%A4%EB%8A%94-%EB%90%98%EB%8F%84%EB%A1%9D-static%EC%9C%BC%EB%A1%9C-%EB%A7%8C%EB%93%A4

 

[이펙티브 자바] 아이템 24. 멤버 클래스는 되도록 static으로 만들라

중첩 클래스는 다른 클래스 안에 정의된 클래스다. 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여야 하며, 그 외의 쓰임새가 있다면 톱레벨 클래스로 만들어야 한다. 중첩 클래스 종류정적

velog.io

아이템 25 톱 레벨 클래스는 한 파일에 하나만 담으라 

https://ajdahrdl.tistory.com/320?category=924852

 

반응형
LIST