E D R , A S I H C RSS

Explicit Initialization

Explicit Initialization

인스턴스 변수들을 어떻게 디폴트값으로 초화시켜주는가?

화에 대해서는 딱히 정해진 좋은 방법이 없다.(상황에 따라 택일해서 쓰라는 말) 이 패턴은 유연성보다는 가독성을 중시한다. 모든 초화를 하나의 메소드에 때려넣는 방법이다. 유연성은 떨어질 수 밖에 없다. 변수 하나 추가하자면 ExplicitInitialization 메소드를 수정해야만 한다는 것을 억하고 있어야 하 때문이다. ExplicitInitializationLazyInitialization보다 비용이 많이 든다. 모든 변수를 인스턴스가 생성될때 초화 하 때문이다.

모든 변수들을 명시적으로 설정해주는 initialize메소드를 구현하라. new메세지를 오버라이딩해서 새로운 인스턴스에 맞게 하라.

1000 밀리세컨드마다 실행되는 타이머를 생각해보자. 이 타이머는 얼마나 많은 시간이 지나갔나도 억하고 있다.
~cpp 
Class Timer
{
/* ... */
	void initialize()
	{
		count = 0;
		period = defaultMillisecondPeriod();	// C++/JAVA에서는 그냥 상수로 써도 될듯하다.
	}
	int defaultMillisecondPeriod()
	{
		return 1000;
	}
	Timer()
	{
		initialize();
	}
};

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:14
Processing time 0.0092 sec