NullObjectPattern이란?

2025. 5. 11. 23:49·면접 준비/Java
728x90
반응형
SMALL

널오브젝트 패턴이란?

객체가 존재하지 않을 때, 널을 전달하는 것이 아닌 아무것도 전달하지 않는 객체를 전달하는 기법이다.

예시 코드

public void doSomething(SomeObject object){
    if(object == null){
        throw new Exception();
    }
}

obj.process();

널 오브젝트의 장점과 단점

여러 곳에서 계속해서 널 체크를 한다면 코드가 증가하고 복잡성이 증가한다. 널 오브젝트 패턴은 널 값을 아무런 행위를 하지 않는 객체로 만들어 체크 코드의 중복을 제거하고 간소화시킬 수 있다. 또한 스택 자료구조를 만들때 용량이 0이라면 ZerocapacityStack을 만들수도 있다.
단점으로는 예외를 탐지하기 어려운 상황을 만들수 있다. 어떤 부분에서 널이 발생했는지 디버그를 해도 해당 코드의 흐름을 모른다면 추적이 어렵게된다.

class MyNullObject implements MyObject {

  @Override
  public void process() {
    // 아무것도 실행시키지 않음
  }
}

class MyRealObject implements MyObject {

  @Override
  public void process() {
      System.out.println("무엇인가 수행합니다.")
  }
}

public void doSomething(MyObject obj) {
  obj.doMethod();
}
728x90
반응형
SMALL

'면접 준비 > Java' 카테고리의 다른 글

[Java- Thread] 스레드 풀 포화 정책 이란?  (1) 2025.05.22
[CS 면접 지식 -Java] 동일성과 동등성, equals()와 ==의 차이  (2) 2024.12.19
'면접 준비/Java' 카테고리의 다른 글
  • [Java- Thread] 스레드 풀 포화 정책 이란?
  • [CS 면접 지식 -Java] 동일성과 동등성, equals()와 ==의 차이
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (329)
      • 면접 준비 (45)
        • OS (6)
        • Spring Security (0)
        • Java (3)
        • DB (11)
        • Network (3)
      • ElasticSearch (5)
      • Kafka (5)
      • Spring (60)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (39)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      백준
      레디스
      springsecurity
      CSS
      스프링프레임워크
      자바스크립트
      JS
      자바기초
      HTML
      자바 면접
      자바 면접질문
      spring redis
      Spring Data Redis
      리눅스마스터2급
      jsp기초
      Til
      자바 알고리즘
      redis 채팅
      java
      JavaScript
      자바
      리눅스마스터2급정리
      Spring
      redis
      Springframework
      자바 반복문
      jsp request
      프로그래머스
      리눅스
      JSP
    • 최근 댓글

    • 최근 글

    • 250x250
    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    NullObjectPattern이란?
    상단으로

    티스토리툴바