이펙티브자바 아이템1 용어 정리

이창호·2022년 4월 1일
0

이펙티브자바

목록 보기
2/12

Static Factory Method

  • class의 constructor를 private으로 capsulation한다.
  • 대신 static method로 인스턴스를 생성해서 준다.
  • 이러면 singleton도 할 수 있고 불필요한 인스턴스 생성도 막을 수 있다.
  • constructor엔 이름을 못정하는데, method는 가능하다.

Signature ( Method Signature )

  • method의 이름과 parameter들의 조합을 signature라고 합니다.
  • contructor는 하나의 signature만 가질 수 있습니다.
  • 대신 static factory method는 다른 이름으로 같은 signature를 여러개 가질 수 있습니다.

Immutable Class

  • instance가 만들어지면 변경할 수 없는 class를 뜻한다.
  • String, Boolean, Integer, Float, Long 등이 있다.
  • Stirng의 경우 이미 만들어진 instance의 내용을 변경하면 새롭게 만들어진다.
  • heap 영역에 생성된다.

Instance-Controlled

  • instance 생성을 통제하는 것이다.
  • singleton, noninstantiable로 만들 수 있다.

Singleton

  • 같은 인스턴스를 여러개 만들어야 한다면 한개만 생성하고 쓰는게 효율적이다.
  • singleton은 인스턴스를 한개만 생성하는 것이다.

Noninstantiable

  • 말그대로 인스턴스를 생성할 수 없는 것이다.

Flyweight Pattern

  • 한 개의 instance를 여러 개의 가상 instance로 만든다.
  • 클래스의 필드 값만 변경하면 되는 경우 instnace를 생성하는 대신 내용만 변경하여 제공한다.
  • 이렇게하면 제공받는 사람은 새로운 instance를 생성한 것처럼 보이는 것이다.

JDBC

  • Service Interface, Provider Registration API, Service Access API가 핵심 component다.
  • Client -> Service Access API -> Provider Registration API -> Service Interface 순으로 인스턴스를 구현 한다.
  • JDBC는 요청하는 값들이 정해져 있어서 static factory method로 구현하기 좋다.
  • 각 순서마다 아직 반환할 인스턴스가 안 정해져 있다. ( 반환활 객체의 클래스가 존재하지 않아도 된다. )

동반클래스

  • interface에 private method나 static method가 쓰이기 전에는 상속받은 class에서 사용해야 했다.
  • 상속받은 객체를 통해 사용하는 대신 interface와 이름이 비슷한 class를 만들어 사용하는 방식이다.
  • 예) Collection, Collections

Flyweight vs immutable Class

브리지 패턴

  • 구현분에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게하는 패턴이다.

리플렉션

의존 객체 주입

컴포지션

  • 다른 객체의 instance를 자신의 객체의 instance 변수로 포함하여 호출하는 기법
public class Client{
	ConnectionInterface connecitonInterface; // 컴포지션 사용
    
    public setConnection(ConnectionInterface connection){
    	this.ConnectionInterface = connection;
	}
}
profile
이타적인 기회주의자

0개의 댓글