Intention Revealing Message ¶
ParagraphEditor๋ผ๋ ํด๋์ค์์ highlight๋ผ๋ ๋ฉ์ธ์ง๋ฅผ ๋ดค๋ค. ๋น์ ์ '์ค, ์ฌ๋ฏธ์๊ฒ ๋๊ฑธ.' ํ๊ณ ๋ณธ๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
class ParagraphEditor { public: void highlight(Rectangle& r) { reverse(r); }์ด๋ป๊ฒ ๋๊ฑด๊ฐ? ์์ฌ์ํต์ด๋ค. ํ ์ค์ ๋ฉ์๋๊ฐ ์์ฌ์ํต์ ๊ฐ์ฅ ์ค์ํ๋ค.(?) ์ฌ์ฉ์์ ์ ์ฅ์์๋ ๊ทธ๋ฅ highlight๋ผ๋ ๋ฉ์ธ์ง์ ์์ญ๋ง ๋ฃ์ด์ ๋ณด๋ด๋ฉด ๋๋ ๊ฒ์ด๋ค. ์ฌ๊ฐํ์ ๋ค์ง์์ผ๋ก์จ highlight๋๋ค๋ ์ฌ์ค์ ๋ชฐ๋ผ๋ ๋๋ ๊ฒ์ด๋ค. IntentionRevealingMessage๋ ์ปดํจํฐ๋ฅผ ์ํ๋ค๊ธฐ๋ณด๋ค๋ ์ฌ๋์ ์ํ ๊ฐ์ฅ ๊ทน๋จ์ ์ธ ํํ์ ํจํด์ด๋ค. ์๋์ ๊ตฌํ์ ๋ถ๋ฆฌํ์๋ ๊ฒ์ด๋ค. ๋ฉ์ธ์ง์ ์ด๋ฆ์ ๊ทธ ๋ฉ์ธ์ง ๋ด์์ ์ด๋ป๊ฒ ๋๋๊ฑด๊ฐ๋ก ์ง์ง ๋ง๊ณ , ๊ทธ ๋ฉ์ธ์ง๊ฐ ๋ฌด์์ ํ๋๊ฑด๊ฐ๋ก ์ง์.
์์ ๋ช๊ฐ
class Collection { bool isEmpty() { return size == 0; } }; class Number { Number reciprocal() { return Number(1/this.num); } }; class Object { bool operator==(const Object& other) { return this == *other; } };
๊ฒฐ๊ตญ ์ด๋ฆ์ ์ ์ง์๋ ์ด์ผ๊ธฐ๋ค. ๊ฐ๋จํ์ง๋ง ์ญ์ ์ค์!