게터와 세터, 그리고 temporal coupling
게터와 세터
오브젝트 지향(이하 OO)에서는 게터나 세터의 사용은 추천되어 있지 않습니다.
사용시에는 신중함이 요구됩니다.
이것은
tell, don't ask
라는 원칙과 관련이 있습니다.오브젝트에 대해서 상태를 문의하는 (ask)가 아니고, 처리를 지시하는 (tell) 대로 구현하는 것이, OO다운 설계인 것입니다.
htps : // 마 r 찐후ぉwぇr. 이 m / b ぃき / 텐 l 어떤 sk. HTML
그 중에서도, 세터의 사용은 특히 피하는 편이 좋다고 생각됩니다.
개체의 뮤테이션은 버그의 온상입니다.
또한 값이 설정되어 있는지 검사가 난발되어 코드 기반 유지 보수성이 저하됩니다.
temporal coupling
일반적인 일본어 번역의 존재를 필자는 모릅니다만, 「시계열 의존」이라고 번역할지도 모릅니다.
특정의 순서로 불려 갈 필요가 있는 처리가 있는 경우, 그것을
temporal coupling
라고 합니다.제대로 캡슐화되었다면 이런 일은 일어나지 않습니다.
이 제약의 존재는 얻어 베테랑 멤버의 머리 속에만 존재하며 팀의 암묵 지식이 됩니다.
세터 사용은
temporal coupling
를 낳습니다.예제는 의사 코드로 표시됩니다.
main() {
const user = new User()
user.setId(10) // repo.save(user) より前に必ず呼び出さないといけないので、これは termporal coupling
if (user.id) {
userRepo.save(user)
}
}
개선 예
main() {
// セッターを使わずに、初期化時にセットされることが保証されている
const user = new User({id: 10})
userRepo.save(user)
}
요약
temporal coupling
라고 부르는 이름이 붙어 있다. Reference
이 문제에 관하여(게터와 세터, 그리고 temporal coupling), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/souppower/items/ad1ac2431fdb136455f8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)