E D R , A S I H C RSS

Self Delegation

Self Delegation

•žžฅ— ๋‚˜˜จ ๋‘๊ฐ€ง€ ˆ๋ฌธ„ ƒ๊ธฐ•ด๋ณดž. œ„ž„•œ ๊ฐฒด˜ ฃผฒด„ด •„š”•œ๊ฐ€? œ„ž„•œ ๊ฐฒด˜ ƒƒœ๊ฐ€ •„š”•œ๊ฐ€? ด ๋‘๊ฐ€ง€— yes๋ผ๊ณ  ๋Œ€๋‹ต•˜๋ฉด Simple Delegation„ “ธˆ˜ —†๋‹ค.
----
œ„ž„๋œ ๊ฐฒด๊ฐ€ œ„ž„•˜๋Š” ๊ฐฒด—  ‘๊ทผ•˜๋ ค๋ฉด ๊ฐ€žฅ ‰ฌšด •œ๊ฐ€ง€ ๋ฐฉ๋ฒ•ด žˆ๊ธฐ๋Š” •˜๋‹ค. ๋ฐ”๋กœ œ„ž„•˜๋Š” ๊ฐฒด˜ ฐธกฐ๋ฅผ ๊ฐ€ง€๊ณ  žˆœผ๋ฉด ๋œ๋‹ค. •˜ง€๋งŒ ๋ณตžก•ดง€๊ณ , ๊นจˆˆ˜๋„ žˆ๋‹ค.
----
—ฌ๊ธฐ„œ  œ‹œ•˜๋Š” ๋ฐฉ๋ฒ•€, œ„ž„•˜๋Š” ๊ฐฒด๋ฅผ ถ”๊ฐ€ ธ ŒŒ๋ผ๋ฉ”„ฐ๋กœ ๋„˜๊ธฐ๋Š” ๊ฒƒด๋‹ค. for๋ผ๋Š” ด๋ฆ„˜ ถ”๊ฐ€ ธ ŒŒ๋ผ๋ฉ”„ฐ๋กœ œ„ž„•˜๋Š” ๊ฐฒด๋ฅผ ๋„˜๊ธฐž.
----
Self Delegation˜ ๊ฐ€žฅ ๋›–ด๋‚œ ˜ˆ œ๋Š” Visual Smalltalk 3.0˜ Dictionary๊ตฌ˜„ด๋‹ค. Dictionary๋Š” ๊ฐ๊ฐ˜ ƒƒœ— ๋Œ€•ด ตœ ™”๋œ HashTable„ —ฌ๋Ÿฌ๊ฐœ ๊ฐ€ง€๊ณ  žˆ๋‹ค. ด๋•Œ, ž๊ธฐ ž‹ (Dictionary)๋ฅผ ๋„˜๊ฒจฃผ๊ฒŒ ๋œ๋‹ค.
~cpp 
class Dictionary
{
...
	void put(const T1& keyObject, const T2& valueObject) {
		hashTable.put(keyObject, valueObject, this); // ๋ฌธ๋ฒ• •ˆ๋งž๋Š”๊ฐ ๊ฐ™๋‹ค. ๊ทธ๋ƒฅ ๊ทธ๋Ÿฐ๊ฐ€ ๋ณด๋‹ค •˜ž.
	}
};
HashTable€ Collectionœผ๋กœ ๋ณด๋‚ธ ๋ฉ”„ง€๊ฐ€ ๋‰–ด๋‚ธ ๊ฐ’„ ๊ธฐ๋ฐ˜œผ๋กœ •ด‰ฌ๊ฐ’„ ๊ณ„‚ฐ•œ๋‹ค.
~cpp 
void HashTable::put(const T1& keyObject, const T2& valueObject, Dictionary* collection)
{
	hash = collection->hashOf(keyObject);
	...
}
ด œ hashOf๋ฅผ ด๋ฆฌ๋ชจ”ผฆ˜œผ๋กœ ๊ตฌ˜„•  ˆ˜ žˆ๋‹ค.
~cpp 
HashTable& Dictionary::hashOf(const T& object) {
	return object.hash();
}
HashTable& IdentityDictionary::hashOf(const T& object) {
	return object.basisHash();
}
----
–ดงธ C++ด    ๋ฏธ›Œ„๋‹ค.
----
SBPPSummary
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:00
Processing time 0.0130 sec