1
A
답변
1
질문을 올바르게 이해하면 size
메서드와 다르게 반응하는 형질을 상속하는 클래스가 있습니까? 그러면 믹스 인 대신 컴포지션을 사용하는 것보다이 모호성을 해결할 방법이 없습니다.
class InMemoryStorage
def mainStorage: StorageTrait
def auxStorage: YetAnotherStorageTrait
def mainSize = mainStorage.size
def auxSize = auxStorage.size
}
그런가요?
관련 문제
- 1. 부스트. 다이아몬드 상속을 피하는 파이썬 랩핑 계층
- 2. 특성 또는 특성 클래스에 스칼라 넣기 방법?
- 3. 스칼라 특성 함수
- 4. 다이아몬드 상속
- 5. 스칼라 모델 - 뷰 - 발표자, 특성
- 6. 다이아몬드 문제 인터페이스
- 7. 다이아몬드
- 8. val 필드가있는 불변 객체 및 특성 스칼라
- 9. C++ 다이아몬드 상속 생성자?
- 10. 스칼라 매크로 주석을 사용하여 개체에 추가 특성 추가
- 11. 스칼라 반사를 사용하여 어떻게 특성 믹스를 추출 할 수 있습니까?
- 12. 스칼라 전략에 바람직한 것 : 대상 또는 특성
- 13. 개체/typesafe에 대한 스칼라 특성 믹스 구성
- 14. 스칼라 - 다형성없는 다형 추상 특성 구현
- 15. 스칼라 대기열 및 PriorityQueue 기본 특성
- 16. 스칼라 특성 재생을 직렬화하는 방법 2.3.x?
- 17. 상속을 사용하여 인터페이스 확장
- 18. 상속을 사용하여 Usercontrol의 평가
- 19. 동적으로 상속을 사용하여 모듈로드
- 20. rails 다중 테이블 상속을 구현할 때 알 수없는 특성 errror
- 21. C++ 다중 상속 - 템플릿이있는 다이아몬드
- 22. 다이아몬드 상속 문제
- 23. C++ 다이아몬드
- 24. 다이아몬드 문제
- 25. Doxygen 쇼 다이아몬드 상속 그래프를 만드는 방법
- 26. 스칼라 2.10.0의 패턴 매칭에서 케이스 클래스 상속을 이용할 수 있습니까?
- 27. 상속을
- 28. Line2D의 끝 부분에 다각형을 사용하여 다이아몬드 그리기
- 29. graphiti를 사용하여 다이아몬드 모양을 만드는 방법은 무엇입니까?
- 30. For 루프를 사용하는 다이아몬드
실제로, 나는 메소드 구현을 "바인딩"하는 방법을 찾고 있습니다. 따라서 StorageTrait를 통해 클래스에 액세스 할 때마다 하나의 "크기"가 사용되고 "YesAnotherStorageTrait"를 통해 액세스되는 경우 다른 구현이 사용됩니다. InMemoryStorage 유형의 인스턴스에서 "크기"를 호출 할 수없는 경우 페널티를 지불 할 준비가되었습니다.별로 의미가 없기 때문입니다. – jdevelop
그건 불가능합니다. 같은 서명으로 메소드를 "오버로드"할 수는 없습니다. 둘 다 섞인다면, 어느 것이 'size' 메소드를 오버라이드 (override)하는지 선언해야한다. 독립적으로 동작하도록하려면 개인 크기 방법을 사용해야합니다. 여전히 공용 크기 메서드를 모호하게 남겨 두므로 실제로이 작업을 수행하지 않아야합니다. 위의 구성의 문제점은 무엇입니까? 'mainStorage'를 호출하면 올바르게 크기가 사용되며'auxStorage'에도 해당됩니다. –
괜찮아, 고마워, 지금은 분명해 – jdevelop