2011년 5월 25일 수요일

Run-On Initialization(추가 초기화)

* 패턴이름 : 추가 초기화
* 증상 : 초기화되지 않은 필드에 접근하여 NullPointerException이 발생한다.
* 원인 : 모든 필드가 생성자에서 초기화 되는것이 아니라, 여러번 나눠서 초기화 되기 때문이다.
* 해결책과 예방책 : 모든 필드에 대한 초기화는 모두 생성자로 집중한다. 초기화할 값을 얻기가 힘들면 특별한 클래스를 생성하고
이를 기본 값으로 사용하라. 좀더 나은 값을 받아 들이기 위해서는 여러개의 생성자를 사용하라.
할 일이 너무 많이 고칠 시간이 부족하다면 최소한 inInitializaed()메소드를 사용하라.
잠재적 위험을 줄이는 방법
1. 필드 값들을 null이 아닌 기본 값으로 초기화 한다.
2. 생성자를 추가해 넣는다.
3. 클래스에 isInitialized()메소드를 추가해 넣는다.
4. 기본값을 의미하는 특별한 클래스를 만든다.
5. 예외만 발생하는 메소드를 포함한다.

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...