본문 바로가기

개발 관련 부가 지식/기타

디자인패턴이란?

728x90
728x90

디자인패턴

-> 개발 과정에서 비슷한 유형을 패턴으로 정리한 것

-> 디자인 패턴 사용 이유는 코드 형태가 비슷하면 유지보수나, 협업에도 도움이 되고, 검증된 구조임

-> 목적에 따라 생성패턴, 구조패턴, 행동패턴으로 나뉘어짐

 

생성 패턴

-> 객체의 생성에 관련된 패턴으로 객체의 생성절차를 추상화하는 패턴

-> 종류 : 추상팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤 패턴 등이 있다.

 

싱글톤 패턴 이란?  인스턴스를 오직 1개만 생성하는 패턴이다.

ex) 스프링에선 스프링 Core가 빈 컨테이너에서 싱글톤 객체를 관리 해준다.

ex) 스레드 풀에선 DB 연결에 필요한 커넥션을 미리 만들어놓고 재사용하는데 이 또한 싱글톤 패턴이다.

 

팩토리 메소드 패턴 이란?  객체를 직접 생성하지 않고, 객체를 생성하는 (factory 역할) 클래스를 따로 만들어 사용

-> 객체를 직접 생성하지 않아서, 결합도가 낮아짐

 

구조 패턴

-> 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴

> 종류 : 어댑터, 브리지, 프록시 패턴 등이 있다.

 

어댑터 패턴 이란?  어댑터를 사용하여 호환되지 않는 인터페이스를 호환되도록 하는 패턴

 

행위 패턴

-> 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

-> 종류 : 템플릿 메소드, 책임 연쇄, 인터프리터 등이 있다.

 

템플릿 메소드 패턴 이란?  상속을 통해 부모클래스의 기능을 확장하는 패턴

-> 자바에선 공통화 된 기능은 정의하고 세부 기능을 추상메소드로 만든 다음 (즉 부모클래스를 추상클래스로 만든다음), 서브클래스에서 세부 기능을 구현(오버라이딩)하게끔 하는 패턴