면접 준비/Java
NullObjectPattern이란?
공부하고 기억하는 공간
2025. 5. 11. 23:49
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