E D R , A S I H C RSS

Lazy Initialization

Lazy Initialization

ExplicitInitialization˜ ๋ชจ๋“  žฅ € ๋‹ œผ๋กœ, ๋‹ € žฅ œผ๋กœ ๋œ‹ค. ๋‹—ฐ•˜‹ค.(--;)
LazyInitialization˜ •˜๋‚˜˜ ๋ณ€ˆ˜‹น ๋‘œ˜ ๋ฉ”†Œ๋“œ๋กœ ๋‚˜๋ˆ „œ ดˆธฐ™”๋ฅผ •œ‹ค. •˜๋‚˜๋Š” ๋ณ€ˆ˜ฐ€ LazyInitialization๋˜๋Š” ฒƒ„ ฐถ”–ด ฃผ๋Š” getter , ๋‹ค๋ฅธ •˜๋‚˜๋Š” ๋ณ€ˆ˜—๋‹ค ๋””ดŠธฐ’œผ๋กœ • ‹„ •„ DefaultValueMethodด๋‹ค. ด ๋ฐฉ๋ฒ•€ œ —ฐ„๋Œ€๋œ‹ค. ๋‹‹ „œ๋ธŒด๋ž˜Šค๋ฅผ ๋งŒ๋“ ‹ค๋ฉด, DefaultValueMethod๋ฅผ ˜ค๋ฒ„ด๋”ฉ•œผ๋กœจ, ธฐ๋Šฅ„ ๋ฐ”ฟ€ ˆ˜ žˆ๋‹ค.  „žฅ—„œ๋„ –ธธ‰–ˆ๋“ฏ„ฑ๋Šฅ๋„ ๋Œ€‹œ‚ฌ ˆ˜ žˆ๋‹ค.

๋ณ€ˆ˜๋งˆ๋‹ค getter๋ฅผ ๋งŒ๋“คž. •„š”•˜‹ค๋ฉด DefaultValueMethod๋ฅผ จ„œ ดˆธฐ™”๋ฅผ •˜ž.

•ž—„œ ‚ดŽด๋ณธ ƒ€ด๋จธ ˜ˆ œ๋กœ •ด๋ณดž.
~cpp 
Class Timer
{
/* ... */
	int getCount()
	{	
		if(!count)	// --; –ดฉ”ˆ˜ —†๋‹ค. ธ๋ƒฅ ˜ธดฑฐ๋‹ค.
			count = defaultCount();
		return count;
	}
	int defaultCount()
	{	
		return 0;	// ƒˆ˜๋กœ •ฒฐฐ€๋Šฅ• ๋“ฏ
	}
	int getPeriod()
	{
		if(!period)
			period = defaultPeriod();
		return period;
	}
	int defaultPeriod()
	{
		return 1000;	// ƒˆ˜๋กœ •ฒฐฐ€๋Šฅ• ๋“ฏ
	}
};

๋ณ„๋กœ •ˆ“ธ๋“ฏ•˜ง€๋งŒ... „Šธ๋ฒก ™ˆ : ผ๋‹€ ExplicitInitialzationœผ๋กœ œ๋ฐœ„ •˜ , ƒ†๋  ฑฐ ฐ™œผ๋ฉด LazyInitialization„ ‚ฌšฉ•œ‹ค.

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