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