< 디자인 패턴 >
- 과거 소프트웨어 개발 과정에서 발견한 설계 노하우를 패턴으로 정리한 것이다. 그래서 범용적인 코드 스타일로 의사소통을 효율적으로 할 수 있다. 그리고 이미 검증된 구조이므로 설계를 빠르게 할 수 있다.
< 싱글톤 패턴 >
- 인스턴스를 오직 1개만 생성하는 패턴이다. 예를 들면 db 커넥션이나 스레드 풀 객체를 생성할 때 사용된다. 만드는 방법으로는 이른 초기화 방식, 게으른 초기화 방식, 그리고 Holder 에 의한 초기화 방식이 있다.
< 팩토리 메소드 패턴 >
- 객체를 직접 생성하지 않고, 객체를 생성하는 Factory 객체를 사용하는 패턴이다. 장점으로는 직접 객체를 생성하는 것을 막아줘서 결합도를 낮춰주는 효과가 있다.
< 어댑터 패턴 >
- 어댑터를 사용해서 호환되지 않는 인터페이스를 호환하도록 하는 패턴인데 향후에 인터페이스가 바뀌더라도 변경된 내용이 어댑터 안에 캡슐화되므로 수정할 필요가 없다.
< 템플릿 메소드 패턴 >
- 상속을 통해서 부모 클래스의 기능을 확장할 때 사용하는 방식이다. 부모 클래스에서 변하지 않는 기능을 구현해두고, 자식 클래스에서 확장할 기능을 구현하게 된다.
- 자바에서는 추상 클래스를 사용해서 구현하는데, 대표적으로 AbstractMap 이 있다. 공통된 기능을 정의하고 상속받은 HashMap 이나 TreeMap 에서 각각의 자료구조에 맞게 get() 메소드를 다르게 구현하게 된다.