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