Saat ini saya sedang mengerjakan proyek perangkat lunak yang melakukan kompresi dan pengindeksan pada rekaman video pengawasan. Kompresi bekerja dengan memisahkan objek latar dan latar depan, lalu menyimpan latar belakang sebagai gambar statis, dan latar depan sebagai sprite.
Baru-baru ini, saya telah memulai meninjau beberapa kelas yang telah saya rancang untuk proyek ini.
Saya perhatikan bahwa ada banyak kelas yang hanya memiliki metode publik tunggal. Beberapa kelas ini adalah:
- VideoCompressor (dengan
compress
metode yang mengambil video input tipeRawVideo
dan mengembalikan video output tipeCompressedVideo
). - VideoSplitter (dengan
split
metode yang mengambil input video jenisRawVideo
dan mengembalikan vektor 2 video output, masing-masing jenisRawVideo
). - VideoIndexer (dengan
index
metode yang mengambil input video jenisRawVideo
dan mengembalikan indeks jenis videoVideoIndex
).
Saya menemukan diri saya instantiating setiap kelas hanya untuk membuat panggilan seperti VideoCompressor.compress(...)
, VideoSplitter.split(...)
, VideoIndexer.index(...)
.
Di permukaan, saya pikir nama kelas cukup deskriptif tentang fungsi yang dimaksudkan, dan mereka sebenarnya kata benda. Sejalan dengan itu, metode mereka juga kata kerja.
Apakah ini sebenarnya masalah?