요요 문제

Yo-yo problem

소프트웨어 개발에서 요요 문제는 프로그램이 너무 길고 복잡한 상속 그래프를 가지고 있는 프로그램을 읽고 이해해야 할 때 발생하는 안티 패턴으로, 프로그래머는 프로그램의 제어 흐름을 따라가기 위해 많은 다른 클래스 정의 사이를 계속 전환해야 한다.이는 객체 지향 프로그래밍의 맥락에서 가장 자주 볼 수 있습니다.이 용어는 프로그래머의 튀는 관심을 장난감 요요의 위아래로 움직이는 것에 비유하는 것에서 유래했다.Taenzer, Ganti, 그리고 Podar는 "우리는 종종 이러한 메시지 [1]트리 중 하나를 이해하려고 할 때 요요를 타는 느낌을 받습니다."라고 설명하면서 문제를 이름으로 묘사했다.

오브젝트 지향 프로그래밍의 대부분의 프랙티스는 이 문제를 피하기 위해 상속 그래프를 가능한 한 얕게 유지할 것을 권장합니다.상속 대신 구성을 사용하는 것도 매우 선호되지만, 프로그래머가 한 번에 여러 클래스 정의를 염두에 두어야 합니다.

심층 계층은 코드 냄새와 코드 [2]재사용을 위한 하위 분류의 증상입니다.

좀 더 일반적으로, 요요 문제는 개념을 이해하기 위해 다른 정보 출처 사이를 계속 옮겨 다녀야 하는 상황을 가리킬 수도 있다.

전체적인 동작에 영향을 주지 않고 이러한 계층을 평평하게 하기 위한가지 코드 리팩터 기법이 있습니다.

상속 계층의 계층 문서화 같은 객체 지향 설계 기법은 프로그래머가 이해해야 하는 정보를 한 곳에 수집하기 때문에 이 문제의 영향을 줄일 수 있다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 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.
  2. ^ "Code Smell 11 - Subclassification for Code Reuse". hashnode. Retrieved 18 January 2021.