Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet69/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   65   66   67   68   69   70   71   72   ...   288
Bog'liq
GOF Design Patterns
Копасов Игорь (1), Т Е Л Е Ф О Н О Г Р А М М А ЗООМ, 20201546 п.80 использ., Oliy matematika, презентация индустрия мутакил иши, 3000 most common words in English, Sun'iy intellekt, 1638511850 AE, 1638511850 AE, Hisob-raqan (Patent boji), O'RQ-600 23-MODDA, Talabaning haftalik hisoboti namunasi , iikinchi hafta amaliyoti., Таҳлил тест
Design Patterns: Elements of Reusable Object-Oriented Software 
86 
void GlyphSubclass::CheckMe (SpellingChecker& checker) 
{ checker.CheckGlyphSubclass(this); } 
where GlyphSubclass would be replaced by the name of theglyph subclass. Note that 
when CheckMe is called, thespecific Glyph subclass is known

after all, we're in 
one of itsoperations. In turn, theSpellingChecker class interface includes an 
operation likeCheckGlyphSubclass for every Glyphsubclass
10

class SpellingChecker { 
public: 
SpellingChecker(); 
virtual void CheckCharacter(Character*); 
virtual void CheckRow(Row*); 
virtual void CheckImage(Image*); 
// ... and so forth 
List& GetMisspellings(); 
protected: 
virtual bool IsMisspelled(const char*); 
private: 
char _currentWord[MAX_WORD_SIZE]; 
List _misspellings; 
}; 
SpellingChecker's checking operation forCharacter glyphs might look something 
like this: 
void SpellingChecker::CheckCharacter (Character* c) { 
const char ch = c->GetCharCode(); 
if (isalpha(ch)) { 
// append alphabetic character to _currentWord
} else { 
// we hit a nonalphabetic character 
if (IsMisspelled(_currentWord)) { 
// add _currentWord to _misspellings 
_misspellings.Append(strdup(_currentWord)); 

_currentWord[0] = '\0'; 
// reset _currentWord to check next word 




Design Patterns: Elements of Reusable Object-Oriented Software 
87 
Notice we've defined a special GetCharCode operation onjust the Character class. 
The spelling checker can deal withsubclass-specific operations without resorting 
to type tests orcasts

it lets us treat objects specially. 
CheckCharacter accumulates alphabetic charactersinto the _currentWord buffer. 
When it encounters anonalphabetic character, such as an underscore, it uses 
theIsMisspelled operation to check the spelling of theword in _currentWord.
11
If 
the word ismisspelled, then CheckCharacter adds the word to thelist of misspelled 
words. Then it must clear out the_currentWord buffer to ready it for the next 
word.When the traversal is over, you can retrieve the list of misspelledwords 
with the GetMisspellings operation. 
Now we can traverse the glyph structure, callingCheckMe on each glyph with the 
spelling checker as an argument.This effectively identifies each glyph to the 
SpellingChecker andprompts the checker to do the next increment in the spelling 
check. 
SpellingChecker spellingChecker; 
Composition* c; 
// ... 
Glyph* g; 
PreorderIterator i(c); 
for (i.First(); !i.IsDone(); i.Next()) { 
g = i.CurrentItem(); 
g->CheckMe(spellingChecker); 

The following interaction diagram illustrates howCharacter glyphs and the 
SpellingChecker objectwork together: 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   65   66   67   68   69   70   71   72   ...   288




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2022
ma'muriyatiga murojaat qiling

    Bosh sahifa
davlat universiteti
ta’lim vazirligi
axborot texnologiyalari
maxsus ta’lim
zbekiston respublikasi
guruh talabasi
O’zbekiston respublikasi
nomidagi toshkent
o’rta maxsus
davlat pedagogika
texnologiyalari universiteti
toshkent axborot
xorazmiy nomidagi
rivojlantirish vazirligi
pedagogika instituti
Ўзбекистон республикаси
tashkil etish
haqida tushuncha
таълим вазирлиги
vazirligi muhammad
O'zbekiston respublikasi
toshkent davlat
махсус таълим
respublikasi axborot
kommunikatsiyalarini rivojlantirish
vazirligi toshkent
saqlash vazirligi
fanidan tayyorlagan
bilan ishlash
Toshkent davlat
sog'liqni saqlash
uzbekistan coronavirus
respublikasi sog'liqni
coronavirus covid
koronavirus covid
vazirligi koronavirus
qarshi emlanganlik
covid vaccination
risida sertifikat
sertifikat ministry
vaccination certificate
Ishdan maqsad
fanidan mustaqil
matematika fakulteti
o’rta ta’lim
haqida umumiy
fanlar fakulteti
pedagogika universiteti
ishlab chiqarish
moliya instituti
fanining predmeti