면접 준비 - 디자인 패턴

jodbsgh·2022년 4월 12일
0

🔥"면접 준비"

목록 보기
9/10

디자인 패턴

디자인 패턴은 과거 소프트웨어 개발 과정에서 발견한 설계 노하우를 패턴으로 정리한 것 입니다.
그래서 범용적인 코드스타일로 의사소통을 효율적으로 할 수 있구요.
그리고 이미 검증된 구조이므로 설계를 빠르게 할 수 있습니다.
목적에 따라서 생성패턴, 구조패턴, 행동패턴으로 나눠지게 됩니다.

싱글톤 패턴

싱글톤 패턴은 인스턴스를 오직 1개만 생성하는 패턴입니다. 예를들면 디비 커넥션이나, 스레드 풀 객체를 생성할 때 사용합니다. 만드는 방법은 이른 초기화 방식, 게으른 초기화 방식, Holder에 의한 초기화 방식이 있습니다.

이른 초기화 방식은 클래스 로더가 초기화하는 시점에서 정적 바인딩을 통해 해당 인스턴스를 메모리에 등록하여 사용하는 것 입니다.

게으른 초기화 방식은 컴파일 시점에 인스턴스를 생성하지 않는 동적 바인딩을 통해 필요한 때에 인스턴스를 생성해서 사용합니다.

Holer에 의한 방식은 싱글톤 인스턴스를 지니게 합니다. 클래스가 로딩되는 시점에 인스턴스를 생성하는 것이 아니라 메모리에 로드되고 인스턴스를 생성하는 방식입니다.

팩토리 메소드 패턴

객체를 직접 생성하지 않고 객체를 생성하는 Factory 객체를 사용하는 패턴입니다.
장점으로는 직접 객체를 생성하는 것을 막아줘서 결합도를 낮춰주는 효과가 있습니다.

어댑터 패턴

어댑터 패턴은 어댑터를 사용해서 호환되지 않는 인터페이스를 호환하도록 하는 패턴입니다. 향후에 인터페이스가 바뀌더라도 변경된 내용이 어댑터 안에 캡슐화되므로 수정할 필요가 없습니다.

템플릿 메소드 패턴

템플릿 메소드 패턴은 상속을 통해서 부모 클래스의 기능을 확장할 때 사용하는 방법입니다. 부모클래스에서 변하지 않는 기능을 구현해두고 자식클래스에서 확장할 기능을 구현하게 됩니다. 자바에서는 추상 클래스를 사용해서 구현하는데요. 대표적으로 AbstractMap이 있습니다. AbstractMap은 AbstractMap에서 공통된 기능을 정의하고
상속받은 HashMap이나 TreeMap에서 각각의 자료구조에 맞게 get() 메소드를 다르게 구현하게 됩니다.

profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글