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 2021-02-07 05:23:27
Processing time 0.0085 sec