인터페이스를 고려하십시오.
interface IWaveGenerator
{
SoundWave GenerateWave(double frequency, double lengthInSeconds);
}
이 인터페이스는 다양한 모양 (예 : SineWaveGenerator
및 SquareWaveGenerator
)의 파도를 생성하는 여러 클래스로 구현됩니다 .
SoundWave
원시 사운드 데이터가 아닌 음악 데이터를 기반으로 클래스를 생성하고 싶습니다 . 비트 이름 (초가 아님)으로 메모의 이름과 길이를 수신하고 내부적으로 IWaveGenerator
기능을 사용하여 SoundWave
그에 따라 작성합니다 .
질문은 NoteGenerator
포함 IWaveGenerator
해야하거나 IWaveGenerator
구현 에서 상속해야 합니까?
나는 두 가지 이유 때문에 작곡에 기울고 있습니다.
1 그것은 나를 어떤을 주입 할 수 있도록 IWaveGenerator
받는 NoteGenerator
동적으로. 또한, 나는 단 하나 개의 필요 NoteGenerator
가 아닌 클래스 SineNoteGenerator
, SquareNoteGenerator
등
2-로 NoteGenerator
정의 된 하위 레벨 인터페이스를 노출 할 필요가 없습니다 IWaveGenerator
.
그러나 나는 이것에 관한 다른 의견을 듣기 위해이 질문을 게시하고 있습니다.
BTW : 나는 말할 것 NoteGenerator
입니다 개념적으로 IWaveGenerator
는 생성하기 때문에 SoundWave
들.