ss0510s의 개발 블로그
close
프로필 배경
프로필 로고

ss0510s의 개발 블로그

  • 분류 전체보기
    • BackEnd
      • DB
      • SpringBoot
      • Java
    • WebSocket
    • Books
      • Head First Design Pattern
    • Infra
    • AI
  • 홈
  • 태그
  • 방명록

[11장] Proxy Pattern

Proxy Pattern특정 객체로의 접근을 제어하는 대리인(특정 객체를 대변하는 객체)을 제공하는 패턴이다.대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다.접근 제어 방법원격 프록시를 사용하여 원격 개체로의 접근을 제어할 수 있다.가상 프록시를 써서 생성하기 힘든 자원으로의 접근을 제어할 수 있다.보호 프록시를 써서 접근 권한이 필요한 자원으로의 접근을 제어할 수 있다.모니터링 코드로컬 모니터링모니터링할 클래스public class GumballMachine { String location; public GumballMachine(String location) { this.location = location; } ..

  • format_list_bulleted Books/Head First Design Pattern
  • · 2024. 5. 24.
  • textsms

[8장] Template Method Pattern

Template Method Pattern알고리즘의 골격을 정의한다. 알고리즘의 일부 단계를 서브클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브클래스에서 재정의할 수도 있다.OO 원칙-할리우드 원칙: 저수준 구성요소가 시스템에 접속할 수는 있지만 언제 어떻게 그 구성요소를 사용할지는 고수준 구성요소가 결정한다. 의존성 부패를 방지한다. ** 의존성 부패: 어떤 고수준 구성요소가 저수준 구성요소에 의존하고, 그 저수준 구성요소는 다른 구성요소에 의존하여 의존성이 복잡하게 꼬여있는 상황Coffee 클래스와 Tea 클래스 추상화Abstract ClassCoffee와 Tea의 추상 클래스를 생성하고, 공통된 부분을 메소드로 구현한다.이때 공통된 알고리즘을 구현한 메..

  • format_list_bulleted Books/Head First Design Pattern
  • · 2024. 5. 24.
  • textsms

[7장] Adapter Pattern과 Facade Pattern

Adapter Pattern특정 클래스 인터페이스를 클라이언트에게 요구하는 다른 인터페이스로 변환하는 패턴이다. 호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할 수 있다.Adpater 종류객체 어댑터Composition으로 Adapter에게 요청을 전달한다.어댑터 클래스와 그 서브 클래스에 대해서도 어댑터 역할이 가능하다.Composition을 사용하여 유연하다.클라이언트는 Target에게 요청하고 있다고 생각한다.어댑터는 Target을 대상으로 하는 요청에 Adaptee 클래스도 반응할 수 있게 한다.Adaptee는 Adapter에서 Target의 메소드 호출을 가로채서 Adaptee의 메소드 호출로 변환한다.클래스 어댑터Target와 Adatper 모두 서브클래스로 만들어서 사용한다.특..

  • format_list_bulleted Books/Head First Design Pattern
  • · 2024. 5. 24.
  • textsms

[6장] Command Pattern

Command Pattern요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있다. 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능, 트랜잭션 시스템을 구현할 수 있다.리모컨 코드리모컨의 각 슬롯을 클릭했을 때, 명령을 통해 행동을 수행하고 각 슬롯마다 다른 명령을 수행해야 한다.Command Interface모든 커맨드 객체에서 구현해야 하는 인터페이스이다.execute() 메서드를 생성한다.public interface Command { public void execute();}Command Concrete행동을 수행할 구상 클래스이다.리시버 객체를 생성한다.excute 함수가 호출되면 리시버 객체에게 특정 작업을 처리하라는 지시를 전달한다.public cla..

  • format_list_bulleted Books/Head First Design Pattern
  • · 2024. 5. 24.
  • textsms

[3장] Decorator Pattern

Decorator Pattern객체에 추가요소를 동적으로 더할 수 있다. 서브 클래스를 만들 때마다 훨씬 유연하게 확장이 가능하다.OO 원칙클래스는 확장에는 열려있어야 하지만, 변경에는 닫혀있어야 한다.커피 메뉴슈퍼클래스 Beverage에 여러 개의 커피 메뉴 클래스를 상속으로 추가할 경우, 많은 수의 상속 관계가 발생하는 문제점이 있다.따라서 음료에 여러 첨가물들을 장식(데코레이트)하는 방법으로 구현한다.변하는 부분: 음료 이름, 가격Decorator은 Component를 꾸밀 수도, 아닐 수도 있다.Abstract Class추상 클래스public abstract class Beverage { // 음료 이름 String description = "Unknown Beverage"; public Stri..

  • format_list_bulleted Books/Head First Design Pattern
  • · 2024. 5. 24.
  • textsms

[2장] Observer Pattern

Observer Pattern한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로, 일대다 의존성을 정의한다.Subject에서 중요한 데이터를 관리하고, Subject의 상태가 변화하면 Observer에서 소식이 전해진다.Observer는 Subject를 구독하고 있으며 갱신 내용을 전달 받는다.OO 원칙상호작용하는 객체 사이에는 가능하면 느슨한 결합을 사용해야 한다.느슨한 결합객체 사이의 상호의존성을 최소화한다.Subject는 Observer가 특정 인터페이스를 구현한다는 사실만 안다.언제든지 Observer를 추가 가능하다.새로운 형식의 Observer를 추가할 때마다 Subject를 수정할 필요가 없다.Subject와 Observer는 서로 독립적..

  • format_list_bulleted Books/Head First Design Pattern
  • · 2024. 5. 24.
  • textsms
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 분류 전체보기
    • BackEnd
      • DB
      • SpringBoot
      • Java
    • WebSocket
    • Books
      • Head First Design Pattern
    • Infra
    • AI
최근 글
인기 글
최근 댓글
태그
  • #Pipeline
  • #Infra
  • #spring boot
  • #Jenkins
  • #head first desgin pattern
  • #react
  • #java21
  • #STOMP
  • #mongoDB
  • #Head First Design Pattern
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바