Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
tekstinę eilutę. Laikome, jog pastaroji gali būti apskaičiuojama iš kitų objekto laukų,<br />
tik jos skaičiavimas labai ilgai užtrunka. Tod÷l mes saugome požymį cacheValid,<br />
kuris parodo, ar nuo paskutinio eilut÷s skaičiavimo pasikeit÷ objekto laukai, ar ne.<br />
Jei laukai pasikeit÷, tai esame priversti iš naujo suskaičiuoti cacheString pagal naujas<br />
laukų reikšmes. Pati cacheString nelaikome objekto būsena, nes yra apskaičiuojama<br />
iš kitų objekto laukų:<br />
class Date<br />
{<br />
private:<br />
mutable bool cacheValid;<br />
mutable string cacheString;<br />
void computeCacheString() const;<br />
...<br />
public:<br />
...<br />
string getString() const;<br />
};<br />
string Date::getString() const<br />
{<br />
if (!cacheValid)<br />
{<br />
computeCacheString();<br />
cacheValid = true;<br />
}<br />
return cacheString;<br />
}<br />
82