Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

DirectVariableAccess: Difference between revisions

From ZeroWiki
imported>Unknown
No edit summary
 
(Repair batch-0002 pages from live compare)
 
Line 24: Line 24:
----
----
[[SBPPSummary]]
[[SBPPSummary]]

Latest revision as of 00:16, 27 March 2026

Direct Variable Access

인스턴스 변수의 값을 어떻게 얻어오고 어떻게 셋팅해주는가?


초기화처럼 변수에 접근하는 방법도 큰 이슈 중 하나였다. 이것에도 두가지 방법이 있는데, 역시 패턴의 존재 이유처럼, 하나는 유연성, 또 다른 하나는 가독성이다. 첫번째 방법은 모든 변수를 직접 접근하는 것이다. 다른 하나는, 항상 메세지를 보내는 것이다.(setter,getter를 사용한다.)


스몰토크 진영에서는 IndirectVariableAccess를 선호했다. 그러다가 켄트아저씨가 DirectVariableAccess를 써 보고는 그것의 가독성에 놀랐다.


아래는 한번 보고 '음. 메세지 x를 보내는군' 하고 잠깐 생각해야 하지만,

...getX()...

아래는 '음. 그냥 x구나.' 할 수 있다는 것이다.

..,x...

와드 아저씨의 말로는, '클래스에 아주 적은 양의 메소드만 존재한다면, getter/setter를 추가하는 것만으로도 메소드의 수가 두배가 되어버린다. 이는 전혀 사용되지 않을 유연성을 위해 쓸데없이 갯수를 늘린 것이다.' 라고 한다.


하지만 이 클래스가 상속이 될 가능성이 있다면, setter/getter를 오버라이딩 해서 사용할수 있으므로, IndirectVariableAccess를 쓰는 것이 괜찮다.


변수에 직접 접근하라.


void Point::setXnY(int xNumber, int yNumber)
{
	x = xNumber;
	y = yNumber;
}

SBPPSummary