E D R , A S I H C RSS

Intention Revealing Message

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;
	}
};

결국 이름을 잘 짓자는 이야기다. 간단하지만 역시 중요!

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2013-12-31 17:08:14
Processing time 0.0837 sec