C#에서는 클래스 상단에 두 개의 추상 기본 클래스가 있고 클래스의 파생 클래스가 꽤 있습니다. 이러한 몇 가지 구체적인 클래스에는 동일한 속성과 메서드가 동일하게 구현되어 있습니다. 그것은 나를 낭비로 치고 다른 일반적인 기본 클래스에서이 공통적 인 동작을 구현하는 것이 해결책 일 수 있습니다.추상 기본 클래스 대신 일반적인 동작을 구현합니까?
그러나 계층 구조의 다른 여러 클래스가 다른 동작을 공유하고 다른 기본 클래스의 컨트롤 중 하나와 공통점을 공유한다면 어떻게 될까요? 아마도 공통성의 영역이 많이있을 것입니다. 추상 기본 클래스 구현으로 이것을 모델링하는 것은 비현실적일까요?
abstract class FlashableControl: Control
{
public int FlashyProperty;
public void FlashMethod();
};
class StatusBar: FlashableControl; // but it's also a bit square too, hmm...
그렇다면 기본 클래스를 사용하지 않고 이러한 구현을 클래스간에 어떻게 공유 할 것입니까?
인터페이스의 구현을 다른 클래스에 위임하고 해당 클래스가 원하는 클래스를 대신하여 해당 속성과 메서드를 구현하도록하여 사용자에게 표준 인터페이스를 지원하도록 StatusBar와 Window가 표시되도록하려는 것이 상상입니다. , 그러나 그것을 커버하는 것은 그것을 구현하는 다른 것입니다.
이 동작을 구현하는 집계 클래스를 시각화 할 수 있지만 이것이 적절하며 함정이 있습니까? 대안은 무엇입니까?
감사
FlashMethod, SquarishProperty 등은 기본 클래스에 구체적으로 구현되어 있습니까? 아니면 추상 클래스입니까? – SWeko
여기서는 추상 구현 방법을 설명하기 위해 실제 구현에서 많은 구현 클래스가 있지만 실제 인터페이스 (인터페이스 및 메서드)는 동일하지만 인터페이스는 동일합니다. – DaBozUK