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.0131 sec