L.O.K

CKA 뱃지
  • 홈
  • 태그
  • 방명록

JAVA/Modern JAVA 11

[MODERN JAVA] 동작 파라미터화 - 전략 디자인 패턴 ( Strategy Pattern )

변화에 대처 가능한 코드를 짜려면 어떻게 해야할까? 컴파일에 결정되는 코드가 아닌 런타임에 결정되는 코드를 짜야 한다. 대표적으로 동작 파라미터화(behavior parameterization)가 있다. 많은 데이터 중 원하는 데이터만 필터링 하려한다. 가볍게 데이터를 파라미터로 받아 조건문으로 필터링하면 된다. 하지만 요구사항은 바뀐다. 필터링 조건은 끊임없이 바뀌고 그럴 때마다 필터링하는 메소드도 복잡해진다. 요구사항이 변함에 따라 필터로직도 수없이 바뀐다. 그렇다면 우리는 어떻게 변화에 대응해야할까? 첫 번째 대응 방법은 '전략 디자인 패턴(Strategy Pattern)'이다. 전략 디자인 패턴은 문제해결을 위한 여러가지 전략이 존재할 때, 전략의 패밀리를 인터페이스로 구현하고 런타임시, 상황에 ..

JAVA/Modern JAVA 2022.10.24
이전
1 2
다음
더보기
  • 분류 전체보기 (666)
    • JAVA (54)
      • JAVA Basic (43)
      • Modern JAVA (11)
      • Effective JAVA (0)
    • ShellScript (1)
    • Go (1)
    • Python (0)
    • SPRING (74)
      • Spring Basic (15)
      • Spring MVC (38)
      • Spring Boot (21)
      • Spring Security (0)
      • Spring Cloud (0)
    • JPA (56)
      • JPA Basic (28)
      • JPQL (10)
      • Spring Data JPA (8)
      • QueryDSL (10)
    • DevOps (37)
      • K8S (19)
      • DOCKER (7)
      • GIT (0)
      • AWS (3)
      • JENKINS (1)
      • Terraform (1)
      • Linux (6)
    • OOP (16)
      • OOP Basic (8)
      • Design Pattern (8)
    • DB (16)
      • DB Basic (15)
      • H2 (1)
    • 알고리즘 (53)
      • 자료구조 (5)
      • 알고리즘 (48)
    • TDD (0)
    • Web언어 (15)
      • JS (1)
      • PHP (3)
      • JSP (11)
    • Monitoring (2)
      • Prometheus (1)
      • Grafana (1)
      • PinPoint (0)
    • 자격증 (34)
      • 정보처리기사 (34)
    • CS (72)
      • OS (23)
      • NETWORK (22)
      • 빅데이터 (5)
      • 인공지능 (21)
      • IT지식 (1)
    • 개발교양도서 (12)
      • 클린코드 (6)
      • 프로그래머의뇌 (6)
      • 프로그래밍심리학 (0)
      • 개발자원칙 (0)
      • ProgramingPearls (0)
    • 프로젝트 (23)
      • BookSNS (1)
      • DevLink (21)
      • bookmeetup (1)
    • TroubleShooting (6)
      • Kubernetes (5)
      • Docker (1)
    • 문제풀이 (190)
      • DP (22)
      • Greedy (21)
      • DataStructure (10)
      • String (10)
      • Sorting (12)
      • DFS&BFS (17)
      • PrefixSum (3)
      • Graph (5)
      • Tree (7)
      • BruteForce (6)
      • BackTracking (4)
      • BitMasking (3)
      • LineSweeping (3)
      • TwoPointer (3)
      • LIS (4)
      • BinarySearch (9)
      • ShortestPath (8)
      • FenwickTree (0)
      • Math (5)
      • Implementation (9)
      • SlidingWindow (1)
      • Hash (1)
      • 문제풀이코드분석 (0)
    • 후기 (4)
    • 자기소개서 (0)
    • CS면접 (0)
    • TIL (0)

방문자수Total

  • Today :
  • Yesterday :

Copyright © Kakao Corp. All rights reserved.

티스토리툴바