최근에 저는 Java에서 작업하기 시작했으며 모든 게터 및 설정자의 거칠고 미친 세상에 소개되었습니다. 나는 처음에는 그것을 싫어했지만 빨리 익숙해졌다. 너무 익숙해.엔티티 개체 데이터 속성에 대한 getter 및 setter
저는 최근 수업 설계에 대해 더 많은 시간을 할애했습니다. 내가하려는 일 중 하나는 모든 것에 게 게터와 세터를하는 함정을 피하는 것입니다. 그러나 내가하는 대부분의 작업은 주로 데이터 컨테이너 인 엔터티를 사용하는 것이므로 getter 및 setter가 실제로 이러한 경우에 부적절하다는 것을 확신하지는 못합니다.
다음은 공용 속성을 사용하는 간단한 예입니다.
class Space {
public String name;
public String description;
Space(final String name, final String description) {
this.name = name;
this.description = description;
}
}
다음은 개인 속성을 사용하고 getter 및 setters를 사용하는 간단한 예입니다. 이러한 예에서
class Space {
private String name;
private String description;
Space(final String name, final String description) {
this.name = name;
this.description = description;
}
public String getName() {
return this.name;
}
public void setName(final String name) {
this.name = name;
}
public String getDescription() {
return this.description;
}
public void setDescription(final String description) {
this.description = description;
}
}
, 모두
name
과
description
필드는 할 수 있어야 변경할 수 있습니다.
getter/setter 예제가 더 명확하고 구현 세부 사항이 name
및 description
인 것을 숨 깁니다. 나중에 필요한 경우 유효성 검사를 설정할 수도 있습니다.
게터와 세터가 악의적이거나 반 패턴이되는 것에 대한 토론을 여러 번 읽었지만이 상황에 적용되지 않을 수도 있습니다.
아마도 아직 고려하지 않은 몇 가지 옵션이있을 수 있습니다. 나는 제안을 위해 열려있다!
내가 이것을 인정한다는이되었을 수 있습니다 C#을 간결 기본 접근을 지정할 수있는 특별한 프로퍼티 구문을 가지고 이유 내가 찾고 있던 대답. –
"외부에서"무엇을 의미합니까? 필드가 공개이면 액세스 가능합니다. 이것은 C "struct"와 더 비슷합니다. 객체가 변경 가능해야하고 스레드 문제가없는 경우 문제가 없습니다. –