Obecnie pracuję nad projektem oprogramowania, który wykonuje kompresję i indeksowanie nagrań z monitoringu wideo. Kompresja polega na dzieleniu obiektów tła i pierwszego planu, a następnie zapisywaniu tła jako obrazu statycznego, a pierwszego planu jako duszka.
Niedawno rozpocząłem przegląd niektórych klas, które zaprojektowałem dla tego projektu.
Zauważyłem, że istnieje wiele klas, które mają tylko jedną metodę publiczną. Niektóre z tych klas to:
- VideoCompressor (z
compress
metodą, która pobiera wejściowe wideo typuRawVideo
i zwraca wyjściowe wideo typuCompressedVideo
). - VideoSplitter (z
split
metodą, która pobiera wejściowe wideo typuRawVideo
i zwraca wektor 2 wyjściowych filmów wideo, każdego typuRawVideo
). - VideoIndexer (z
index
metodą, która pobiera wejściowe wideo typuRawVideo
i zwraca indeks typu wideoVideoIndex
).
Uważam siebie instancji każdą klasę tylko do wykonywania połączeń, takich jak VideoCompressor.compress(...)
, VideoSplitter.split(...)
, VideoIndexer.index(...)
.
Na pierwszy rzut oka wydaje mi się, że nazwy klas wystarczająco opisują ich zamierzoną funkcję i są w rzeczywistości rzeczownikami. Odpowiednio ich metody są również czasownikami.
Czy to rzeczywiście problem?