요요 문제
Yo-yo problem소프트웨어 개발에서 요요 문제는 프로그램이 너무 길고 복잡한 상속 그래프를 가지고 있는 프로그램을 읽고 이해해야 할 때 발생하는 안티 패턴으로, 프로그래머는 프로그램의 제어 흐름을 따라가기 위해 많은 다른 클래스 정의 사이를 계속 전환해야 한다.이는 객체 지향 프로그래밍의 맥락에서 가장 자주 볼 수 있습니다.이 용어는 프로그래머의 튀는 관심을 장난감 요요의 위아래로 움직이는 것에 비유하는 것에서 유래했다.Taenzer, Ganti, 그리고 Podar는 "우리는 종종 이러한 메시지 [1]트리 중 하나를 이해하려고 할 때 요요를 타는 느낌을 받습니다."라고 설명하면서 문제를 이름으로 묘사했다.
오브젝트 지향 프로그래밍의 대부분의 프랙티스는 이 문제를 피하기 위해 상속 그래프를 가능한 한 얕게 유지할 것을 권장합니다.상속 대신 구성을 사용하는 것도 매우 선호되지만, 프로그래머가 한 번에 여러 클래스 정의를 염두에 두어야 합니다.
심층 계층은 코드 냄새와 코드 [2]재사용을 위한 하위 분류의 증상입니다.
좀 더 일반적으로, 요요 문제는 개념을 이해하기 위해 다른 정보 출처 사이를 계속 옮겨 다녀야 하는 상황을 가리킬 수도 있다.
전체적인 동작에 영향을 주지 않고 이러한 계층을 평평하게 하기 위한 몇 가지 코드 리팩터 기법이 있습니다.
상속 계층의 계층 문서화 같은 객체 지향 설계 기법은 프로그래머가 이해해야 하는 정보를 한 곳에 수집하기 때문에 이 문제의 영향을 줄일 수 있다.
「 」를 참조해 주세요.
- 디자인 패턴 » 서론, 1장
- 복잡성 시스템(모든 종류의 시스템)이 복잡하다는 것은 무엇을 의미합니까?
- Hrair limit 인간이 한 번에 최대 7가지 개념을 즐길 수 있다는 제안
- 구현 상속
- 상속 의미론
- 가상 상속(개체 지향 프로그래밍)
- 코드 냄새
레퍼런스
- ^ Taenzer, David; Ganti, Murthy; Podar, Sunil (1989). "Problems in Object-Oriented Software Reuse" (PDF). ECOOP 89: Proceedings of the Third European Conference on Object-Oriented Programming, 1989. Cambridge University Press. pp. 33–34. Retrieved 22 March 2013.
- ^ "Code Smell 11 - Subclassification for Code Reuse". hashnode. Retrieved 18 January 2021.