Home 4.기능과 책임분리
Post
Cancel

4.기능과 책임분리

기능 분해

  • 기능은 하위 기능으로 분해 Screenshot 2022-11-13 at 22.17.33.png
  • 기능을 누가 제공할 것인가?
  • 기능은 곧 책임
  • 분리한 각 기능을 알맞게 분배 Screenshot 2022-11-13 at 22.18.18.png

    큰 클래스, 큰 메서드

  • 클래스나 메서드가 커지면 절차지향의 문제발생
    • 큰 클래스 → 많은 필드를 많은 메서드가 공유
      • 서로 다른 코드가 공유를 계속하면 변경이 힘들어짐
    • 큰 메서드 → 많은 변수를 많은 코드가 공유
    • 여러 기능이 한 클래스, 메서드에 섞여 있을 가능성
  • 책임에 따라 알맞게 코드 분리 필요

책임 분배/분리 방법

패턴 적용

  • 전형적인 역할 분리
    • 컨트롤러, 서비스, DAO
    • 엔티티, 밸류, 레포지토리, 도메인
  • AOP
    • Aspect (공통 기능)
  • GoF (Gang of Fours) Design Pattern
    • Factory, Builder, Strategy, Template, Proxy, Decorator
  • 계산 로직 분리

Screenshot 2022-11-13 at 22.23.30.png

  • 연동 분리
  • 네트워크, 메시징, 파일 연동 처리 분리
  • 조건 분기 추상화
  • 연속적인 if-else는 추상화 고민

‼️주의 의도가 잘 드러나는 이름 사용

역할 분리와 테스트

  • 역할 분리를 잘하면 테스트가 용이해짐 회원가입 기능의 여러가지 책임을 분리하는 예시 회원가입 기능의 여러가지 책임을 분리하는 예시

하위 기능을 분리하고 각각의 하위기능을 알맞은 객체에게
나누어 배분하는것으로 객체지향 설계를 할 수 있다.

This post is licensed under CC BY 4.0 by the author.

Java Lambda 외부 변수 사용시 문제

5.의존과 DI