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
compressmetodą, która pobiera wejściowe wideo typuRawVideoi zwraca wyjściowe wideo typuCompressedVideo). - VideoSplitter (z
splitmetodą, która pobiera wejściowe wideo typuRawVideoi zwraca wektor 2 wyjściowych filmów wideo, każdego typuRawVideo). - VideoIndexer (z
indexmetodą, która pobiera wejściowe wideo typuRawVideoi 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?