기술면접/자바, 객체지향, 스프링

디자인 패턴

EnoughTT 2024. 5. 19. 20:55

디자인 패턴

  • 자주 사용하는 설계 패턴을 정형화해 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계
  • 프로젝트 상황에 맞춰 적용 가능

 

Gof 디자인 패턴

  • 객체지향 개념에 따른 설계중 재사용할 경우 유용한 설계를 디자인 패턴으로 정해 둔 것

 

 

- 디자인 패턴 장점

  • 개발자간의 원활한 소통
  • 소트프웨어 구조 파악 용이
  • 재사용을 통한 개발 시간 단축
  • 설계 변경 요청에 대한 유연한 대처

 

- 디자인 패턴 장점

  • 객체지향 설계 / 구현
  • 초기 투자 비용 부담

 

 

- 생성 패턴

  • 객체를 생성하는 것과 관련
  • 객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화, 코드의 유연성을 높여줌
    • Factory Method
    • Singleton
    • Prototype
    • Builder
    • Abstract Factory
    • Chaining

 

 

- 구조 패턴

  • 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램 구조를 설계하는데에 활용
  • 클래스, 객체들의 구성을 통해 큰 구조를 만들 수 있음
  • 큰 규모의 시스템에서는 많은 클래스들이 서로 의존성을 가지게 되는데, 복잡한 구조를 개발 하기 쉽게 만들어줌
  • 유지보수 쉬움
    • Adapter
    • Composite
    • Bridge
    • Decorator
    • Facade
    • Flyweight
    • Proxy

 

 

- 행위 패턴

  • 반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것
  • 행위 관련 패턴을 사용해 독립적으로 일을 처리하고자 할때 사용
    • Template Method
    • Interpreter
    • Iterator
    • Observer
    • Strategy
    • Visitor
    • Chain of responsibility
    • Command
    • Mediator
    • State
    • Memento

 

- Singleton pattern (싱글톤)

Singleton 패턴은 어떠한 클래스 (객체)가 유일하게 1개만 존재 할 때 사용

서로 자원을 공유 할 때 사용

TCP Socket 통신에서 서버와 연결된 connect 객체에 주로 사용

스프링 bean 클래스 (객체)에 사용됨

 

SocketClient.java

 

Aclazz.java

 

Bclazz.java

 

Main.java

 

 

 

 

- Adapter pattern (어댑터)

호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용 할 수 있도록 함

SOLID 중에서 개방폐쇄 원칙 (OCP)를 따름

 

 

Electronic110v.java

 

Electronic110v.java

 

HairDryer,java

 

Cleaner.java

 

AirConditioner.java

 

AdapterMain.java

 

 

 

 

- Proxy pattern (프록시)

대리인이라는 뜻으로, 대신해서 처리하는 것

대신 전달 하는 형태로 설계되며, 실제 클라이언트는 Proxy로 부터 결과를 받음

캐시의 기능으로도 활용 가능

SOLID 중 개방폐쇄 원칙 (OCP) 과 의존역전 원칙 (DIP)를 따름

 

 

 

IBrrowser.java

 

Browser.java

 

BrowserProxy.java

 

Html.java

 

ProxyMain.java

 

 

 

AopBrowser.java

 

ProxyMain.java

 

 

 

 

 

 

 

 

 

 

 

 

 

 

feat. 패캠 - Java/Spring 웹 개발 마스터 초격차 패키지

'기술면접 > 자바, 객체지향, 스프링' 카테고리의 다른 글

자바, 객체지향, 스프링  (1) 2023.12.26