Функция класса:Гадкого определение интерфейса класса
- Получит последовательность кадров изображения, последовательность является бесконечной .
- Определите, есть ли движение в кадрах.
- Группа кадров движения в соответствии с определенным алгоритмом.
До сих пор дизайн (довольно глупо):
class MotionDetector
{
//detect motion in the frame, return true if the group is captured.
//frameToDispose is the frame that need be dispose, or for further process.
public bool ProcessFrame(Frame in, out frameToDispose);
}
Потребитель (фрагмент):
public void Foo()
{
bool groupCaptured = motionDetector.ProcessFrame(nextFrame, out lastFrame);
if (IsStaticFrame(lastFrame)) { lastFrame.Dispose(); }
else { imagesArray.Add(lastFrame); }
if(groupCaptured) { processImageGroup(imagesArray); }
}
я чувствую себя некомфортно с дизайном MotionDetector о следующих:
- Способ получения группы изображений.
- Способ утилизации неподвижных кадров.
- Способ уведомления клиента о том, что группа захвачена.
Можете ли вы дать несколько советов по дизайну интерфейса класса, так что для потребителя этот класс проще и элегантнее?
Что именно вы чувствуете неудобно? – AxelEckenberger
@ Obalix, отредактированный, чтобы добавить то, что мне не удобно. – Benny