본문 바로가기
  • Adillete
【Java】

[Java] 디자인 패턴

by 아딜렛 2025. 3. 31.

1. 어댑터패턴
: 서로 다른 인터페이스를 가진 두 클래스가 함께 작동할수 있도록 중간에서 변환해주는 디자인 패턴이다. 기존에 개발된 클래스를 새로운 인터페이스에 맞게 재사용 할때 유용함 

2.  프록시 패턴: 실제 객체를 대신하는 대리객체를 통해 실제 객체에 대한 접근을 제어하는 구조적 디자인 패턴이다
프록시는 실제 객체와 동일한 인터페이스를 구현, 클라이언트는 프록시를 통해 간접적으로 실제 객체와 상호 작용한다.
ocp와 의존 역전 원칙이 적용된 패턴
언제 사용? 지연 초기화: 객체를 사용하기 전까지 초기화를 미루어서 리소스를 절약하고자할때
접근 권한 통제: 특정 클라이언트만 서비스 객체에 접근할수 있도록 권한을 관리할때
3. 데코레이터 패턴: 객체에 동적으로 새로운 책임, 기능을 추가할수 있는 디자인 패턴, 상속을 통한 기능 확장의 대안 메서드의 호출 반환값에 변화를 두기 위해 장식으로 사용하는 패턴,
데코레이터: 자바의 단일 상속의 한계를 벗어나 여러 기능 조합이 가능
기존 코드를 수정하지 않고도 새로운 기능을 추가할수 있음
4. 싱글턴 패턴:특정 클래스의 인스턴스가 전체 애플리케이션에서 하나만 존재하도록 보장함
전역적인 접근점으로 동일한 객체 인스턴스를 공유하는것
private 선언 , 인스턴스에 접근할수 있는 public static 메서드 제공 getInstance 처음 호출될떄만 인스턴스 생성, 이후에는 기존 인스턴스를 반환
5. 옵저버 패턴: event가 일어났을때 미리 등록된 다른 클래스에 통보해주는 패턴
6. 파사드 패턴: 여러개의 객체와 실제 사용하는 서브 객체 사이에 복잡한 상호작용이  있을때,파사드 클래스를 만들어 복잡성을 숨기고 클라리언트에게 간단한 인터페이스만 노출함, 클라이언트는 파사드가 제공하는 간단한 메서드만 호출함.
7. 전략 패턴: 클라이언트가 여러 전략중 하나를 객체로 만듦.해당 객체를 실행할 컨텍스트에 주입하고 컨텍스트는 주입받은 전략객체의 메서드를 호출하여 실제 작업을 위임한다.

 

참고 :

https://velog.io/@mooh2jj/%EC%8A%A4%ED%94%84%EB%A7%81%EC%9D%84-%EC%9C%84%ED%95%9C-%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-%EC%A0%95%EB%A6%AC

 

[Java] 디자인패턴 정리

"호출당하는 쪽의 메소드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴"ex) JDBC, JRE서로 다른 두 인터페이스 사이에 통신이 가능하게 하는 것합성, 즉 객체의 속성으

velog.io

 

'【Java】' 카테고리의 다른 글

[Java]파일 i/o  (0) 2025.03.31
[Java] 추상클래스, 인터페이스  (0) 2025.03.31
[Java]Flow API  (0) 2025.03.31
[Java] 생성자를 쓰는 이유  (0) 2025.03.25
[java] valueOf?  (1) 2024.12.25