What is the " purist"; 또는 " correct"; # 39 의 속성을 액세스하려면 오버클로킹된 object& 내에서 객체에는 아닌 메서드로부터 getter / setter 방법?
외부에서 콩지름에 객체에는 한 것으로 알고 있지만, getter / setter 내에서 투석실에다가 just do.
Java:
String property = this.property;
PHP.
$property = $this->property;
또는 하겠나.
Java:
String property = this.getProperty();
PHP.
$property = $this->getProperty();
나는 사람들이 얘기하는 것 같다고 가정하면 비공개되거나 금지되었는지 com/go/4e6b330a_kr / 속성만. 내가 어렸을 때 배운 OO / 세터 속성 하나가 모든 것을 가르쳐 게터 사용할 경우에도 전송되었기 여론 (public / 속성, 오히려 난 그 모든 변수를 만들 수 없다 "고 말했다). 그래서, 난 과민반을을 허위 가정 에서 떨어져 시작될 수 없게 됐다. 아마 이 질문에 답하는 것으로 보인다 "고 하는 사람들이 가지고 있는 공용 속성 및 해당 don& # 39, t need 게터 및 세터, 어긋나는 것을 배울 수 있지만, 어쩌면 내가 말한 것은, 내가 하는 논의될 것으로 잘 알려져 있다. # 39 이라는 주제에 대해 다른 좋은 질문 어쨌든요 that& 것이다.
나중에 현장 업무를 하는 방식을 변경할 수 있습니다. 어쩌면 계산됩니까 합니다 혹시 다른 형식을 백킹을 시도하려는 즉석에서 선보였다. 속성을 직접 액세스하며 경우 발생할 수 있는 한 많은 코드를 일부를 변경 등 가혹한 포프.
특히, '개인' 의 경우 게터 세터 '및' 해당 분야 등에 있어, 각각의 모든 필드이므로 틀렸다니까 좋은 것이다. # 39; d you& 유형을 변경할 수 없는 파장이 매우 한다는 모든 클래스가 있는 페이징됩니다 전용 필드 '킬러'.
또, 엄밀히 말하자면 OO 의 관점, 이에 해당하는 제공하십시오 객체에는 메시지 (메서드) 그들의 (그러길 바래야지) 단일 책임. 대다수의 게터 don& 세터 ',' '와', '# 39 더 쉽게 이해할 수 없다' 는 그들의 구성 객체에는 펜.디스펜세인콘토 (서피스를) 보다 펜.제콜러 다는일은 감지에서 ' ()'.
또한 사용자는 하나님께용서를 객체에는 세터 게터 및 일부 데이터에 대한 계산을 수행할 것을 권장하십시오 클래스, 그리고 다른 값을 설정한 후, 더 잘 알려진 객체에는 절차적 프로그래밍. # 39 더 단순히 해야할 you&; d) 를 역임한 떠날려하면 객체에는 조교하실 제일 것입니다. [정보 숙련가] [1] 소트트웨어용 관용구.
그러나 세터 게터 및 필요하다고 해서 dell. 경계를 레이어에는 - UI, 지속성) 등이 있습니다. # 39 의 내부를 class& 제한되었거나 액세스하도록 c++& # 39 의 친구 같은 키워드, java& # 39 의 패키지 금지되었는지 .net& # 39 의 내부 액세스 및 액세스,,, 친구, 클래스 a href = " < " > pattern< /a>, http://moffdub.wordpress.com/2008/09/17/friend-classes-in-java-and-c-sharp/ 세터 '와' 의 게터 가시도로 줄일 수 있습니다) 를 필요로 하는 구멍만이 저들이요
[1]: # informationexpert http://en.wikipedia.org/wiki/grasp% 28object-oriented_design% 29
이 속성이 사용되는 방법에 따라 다릅니다. 예를 들어 있는 이름 재산이잖아 수강생용 객체에는 있습니다. Get 메서드를 사용할 수 있는 경우, 그 이름을 가져오기할 데이터베이스에서 hasn& 읽어들입니다 # 39 는 이미. 이 방법은 데이터베이스에 대한 불필요한 전화에 줄일 수 있다.
이제 let&; s say you have a # 39 에 있는 사립 정수 엇회전식 객체에는 횟수를 들려주시겠습니까 이름을 일어났음을. Get 메서드입니다 사용하지 않도록 설정할 수 있습니다 잘못된 수 있기 때문에 내부에서 객체에는 생성될 수 있습니다.
PHP 는 등 다양한 방법으로 처리할 수 있는 방법, but I '와' 매직 '이' _get _set 포지셔닝하십시오 명시성 게터 및 세터. # 39 의 here& 이유:
>. 나는 그냥 가는 알려왔다 여기서요?
아마도;)
다른 외곽진입 약간만이라도 활용하기 위해서는 개인 / 보호 방법을 끝의 (캐싱과는 / etc / db), 그리고 실제로 행하는 것이 증분을 위한 래퍼 수가 있다.
PHP.
public function getName() {
$this->incrementNameCalled();
return $this->_getName();
}
protected function _getName() {
return $this->name;
}
그리고 객체 자체에 내에서.
PHP.
$name = $this->_getName();
이렇게 하는 첫 번째 argument for something else 계속 사용할 수 있습니다 (캐싱된 여기에 사용되는 데이터 전송을 위한 플래깅 같은 것인지 모른다).
내가 여기 왜 투석실에다가 반드시 누각되었습니다 요점이지 해당 객체의 속성을 사용하여 객체를 getter 인사이드라면 액세스하려면?
전화 한 통화 할 수 있는 킬러 getter 삼고 그 결론이 하는 getter.
그래서 I& # 39 라고 객체를 직접 볼 수 있는 방법, d 로, 특히 다른 방법으로 이 객체에는 호출하십시오 액세스함으로써 속성 (property 액세스하십시오 다음 이를 다시 어쨌든 그냥 직접) 는 단지 무의미한, 고 연습 (또는 나는 질문을 잘못).
꼭 이래야겠어요 말하도다 더 나은 방법을 객체에는 내에서도 액세서의 사용할 수 있다. 다음은 내 마음 갈 점은 바로:
2), 경우에 따라서는 이러한 방식이 가능하다고 하고, 그 이상 액세서의 액세스하면 필드. 일부 추가 처리 () 는 희귀 표시되어도) 하고 있을 수도 있다. 이 경우, 추가 필드를 직접 액세스함과 놓치고 있는 것과 프로그램에서 경우 이러한 처리는 항상 일이 갈 수 처리 및 그 중에 수행됨 액세스하며
순정 주의자 피할 방법은 모두 다음, 이 OO (데메테르 법칙] 1 를 사용하는 [떠날려하면 don& # 39, t ask] [2] 외곽진입.
doSomethingWithProperty() {
doSomethingWith( this.property ) ;
}
예를 들어 있는 속성 유형, int 는 기본 도메인 이름을 사용하지 않는 문제에 대한 접근 방식, 프로그래밍 도메인.
doSomethingWithProperty( this.daysPerWeek() ) ;
이러한 모든 사후 조건을 캡슐화 및 유지 또는 종속적입니다 불변량 수 있게 해준다. 그러나 세터 유지하기 위해 모든 방법을 사용할 수도 있습니다, t # 39 의 사전 조건 또는 종속적입니다 불변량 don& 빠지지 트랩할 세터 http://www. gnu. 백됩니다 관용구 사용할 때 그 이름 할리우드 지정하기 위한 것이다.
[2]: 텔동타스크 http://c2.com/cgi/wiki?
내가 할 수 있지만, 공용 속성 때문에 잘못됐다 I& # 39 m 독학자 나는치료가그렇게 사용자 내 자바 클래스, 그들은 항상 비공개되거나 금지되었는지 도왔으매 바깥쪽인지가 코드 / 세터 게터 액세스하려면 합니다. # 39 의 it& 더 유지 보수 / 수정 작업을 할 수 있습니다. 및 δ1 클래스 코드. 하지만 난 내가 사용하는 경우 사소한 getter 방법은 직접 할당 메서드를 사용하여 속성 때문에 쉽게 코드를 추가할 경우 이벤트 불지옥의 항상 내가 할 수 있으면 좋겠습니다.
인터넷을 통해 개인 필드 또는 금지되었는지 이다. 속성 값을 액세스하려면 거쳐야 한다고 복사됩니다 로컬 변수 슬래시나 사용할 수 있으며, 두 번 이상 메서드입니다. 그래서 완전히 면변형된, 응용 프로그램의 경우 및 있는 경우, 및 기타 최적화되었는지 뒤흔든 아웃해야 미삭 위치로 이동하여 액세스하면 아소시아테드 속성 값을 통해 병목 현상이 되고 있다 (그 일이 결코 내가 판매업체에서 작성하더라도) 해야 할 수 있도록 터치 그 이외의 다른 것을 직접 com/go/4e6b330a_kr 백킹을 특성는 고려해보십시오 시작합니다.
.NET 개발자가 사용할 수 있으므로, 자동 등록 정보 관리를 위해 너회가 can& # 39 를 디자인할 때 com/go/4e6b330a_kr 백킹을 못할 정도였습니다.
하지만 내가 원하는 답을 에서 [코맥컬로] [1] 에서 [그렉이야 헐먼] [2] 가 가장 정확한 답은 같다. All the time) 에서 사용하기 시작한 경우 getter / 세터 사용해야 겠고 및 / 또는 해당 업체와 협력을 위해 사용됩니다.
개인적으로 등을 찾을 수 있는 코드를 사용하여 표시됨과 getter / 세터 및 디버그로 나중에 쉽게 읽을 수 있습니다.
[1]: https://stackoverflow.com/questions/126/how-would-you-access-object-properties-from-within-an-object-method # 132 [2]: https://stackoverflow.com/questions/126/how-would-you-access-object-properties-from-within-an-object-method # 127
명시된 대로 일부 의견: # 39, t, 때때로 shouldn& 합니다 때가 있습니다. The great) 는 모든 장소에 대한 부품 com/go/4e6b330a_kr pbs. 볼 수 있는지 뭔가 변경할 때 사용할 수 있습니다. 뭔가 이를 사용할 경우, getter / setter 높여줍니까 합니다. # 39 doesn& 경우, t 문제를 결정할 수 있습니다.
그리고 누군가가 getter / setter 를 사용하는 경우 반대 케이스 만들 수 있을 것으로 분석할 수 있는 모든 곳에서 그들은 getter / setter 와 getter 변경하는 setter 를 사용할 수 있는지 내부적으로 뭔가 혼잡 상승했다.