문제
최근에 싱글 톤이 나쁘고 의존성 주입 ( "인터페이스 사용"으로 이해)이 어떻게 더 좋은지에 대해 많이 읽었습니다. 콜백 / 인터페이스 / DI 로이 부분을 구현하고 인터페이스 분리 원칙을 준수했을 때 나는 결국 혼란스러워했습니다.
기본적으로 모든 하위 항목의 하위 항목이 결합 된 UI 상위 항목의 종속성으로 인해 UI 요소가 계층 구조를 위로 올라 갈수록 생성자가 더 부풀어졌습니다.
UI 계층 구조의 맨 위에는 현재 선택에 대한 정보와 변경 사항을 반영해야하는 3d 모델에 대한 참조가 포함 된 Application 클래스가 있습니다. 응용 프로그램 클래스는 8 개의 인터페이스를 구현하고 있으며 앞으로 나올 제품 (/ 인터페이스)의 5 분의 1에 불과했습니다!
나는 현재 선택을 유지하는 단일 톤과 UI 요소를 업데이트하는 기능을 가지고 있습니다. 이 함수는 UI 트리와 UI 요소를 속여서 필요에 따라 현재 선택 싱글 톤에 액세스합니다. 이 방법으로 코드가 더 깨끗해 보입니다.
질문
이 프로젝트에 싱글 톤이 적절한가요?
그렇지 않다면, DI를 생각하고 /하거나 구현하는 데 근본적인 결함이 있습니까?
프로젝트에 대한 추가 정보
유형 : 종소리와 휘파람이있는 아파트 용 쇼핑 바구니
크기 : 코드 및 UI의 경우 2 개월 개월
유지 관리 : 업데이트가 실행되지 않지만 나중에 "버전 2.0"일 수 있음
환경 : Entity를 사용하는 Unity에서 C # 사용 구성 요소 시스템
거의 모든 경우에 사용자 상호 작용은 여러 작업을 트리거합니다. 예를 들어, 사용자가 항목을 선택할 때
- 해당 항목과 설명을 표시하는 UI 부분을 업데이트해야합니다. 이를 위해서는 가격을 계산하기 위해 3D 모델에서 일부 정보를 가져와야합니다.
- UI를 더 높이려면 전체 총 가격을 업데이트해야합니다.
- 변경 사항을 표시하려면 3D 모델의 클래스에서 해당 함수를 호출해야합니다.