Tôi hiện đang làm việc trong một dự án phần mềm thực hiện nén và lập chỉ mục trên các đoạn phim giám sát video. Quá trình nén hoạt động bằng cách tách các đối tượng nền và tiền cảnh, sau đó lưu nền dưới dạng hình ảnh tĩnh và tiền cảnh dưới dạng sprite.
Gần đây, tôi đã bắt tay vào việc xem xét một số lớp mà tôi đã thiết kế cho dự án.
Tôi nhận thấy rằng có nhiều lớp chỉ có một phương thức công khai duy nhất. Một số trong các lớp này là:
- VideoCompressor (với
compress
phương thức lấy một video đầu vào loạiRawVideo
và trả về một video đầu ra loạiCompressedVideo
). - VideoSplitter (với
split
phương thức lấy một video đầu vào loạiRawVideo
và trả về một vectơ gồm 2 video đầu ra, mỗi loạiRawVideo
). - Video Indexer (với một
index
phương thức lấy một video đầu vào loạiRawVideo
và trả về một chỉ mục video loạiVideoIndex
).
Tôi thấy mình instantiating mỗi lớp chỉ để thực hiện cuộc gọi như VideoCompressor.compress(...)
, VideoSplitter.split(...)
, VideoIndexer.index(...)
.
Nhìn bề ngoài, tôi nghĩ rằng các tên lớp đủ để mô tả chức năng dự định của chúng và chúng thực sự là danh từ. Tương ứng, phương pháp của họ cũng là động từ.
Đây thực sự là một vấn đề?