이 방법은 Null 검사를 자주 하게 될 때 유용한다.
if (object == null)
result = 0;
else
result object.getResult();
위와 같은 코드를 Null객체를 구현함으로써 한줄로 표현된다.
슈퍼 클래스
class Object {
abstract int getResult();
}
Null 클래스
class NullObject extends Object {
int getResult() {
return 0;
}
}
객체 생성시 Null 일 경우 NullObject로 만들어준다 그렇게 되면 위의 예제 코드는 다음과 같이 바꿀수 있다.
result = object.getResult();
위의 예제 말고도 set을 하는 함수에도 활용 할 수 있다. 이 방법은 Null이라는 예외도 클래스로 만들어 줌으로써 다형성으로 처리 할수 있도록 해주는 방법이다. 많은 곳에 활용할수 있는 방법인듯 하다.
'Development > Programming' 카테고리의 다른 글
[Refactoring] 상태 변경 메서드와 값 반환 메서드를 분리 (0) | 2013.09.09 |
---|---|
[Refactoring] 메소드명 변경 (0) | 2013.09.09 |
[Refactoring] 조건문을 재정의로 전환 (0) | 2013.09.04 |
[Refactoring] 여러 겹의 조건문을 감시절로 전환 (0) | 2013.09.03 |
[Refactoring] 제어 플래그 제거 (0) | 2013.09.03 |