Menu
CoddyTech

Ôn tập: trình phát đa phương tiện

Thuộc phần Lập trình hướng đối tượng trong hành trình Rust của Coddy. Bài học 34 trên 61.

challenge icon

Thử thách

Dễ

Hãy xây dựng một hệ thống phát nội dung đa phương tiện đơn giản để minh họa cách các loại nội dung đa phương tiện khác nhau có thể dùng chung một giao diện thông qua trait!

Bạn sẽ sắp xếp code trong ba tệp:

  • playable.rs: Định nghĩa một trait công khai Playable với phương thức play(&self), phương thức này in ra kết quả khi được gọi. Trait này thể hiện khả năng chung mà mọi loại nội dung đa phương tiện đều có.
  • media.rs: Tạo hai struct công khai triển khai trait của bạn:
    • Audio: có trường title công khai (String), in ra Playing audio: {title} khi phát
    • Video: có trường title công khai (String), in ra Playing video: {title} khi phát
  • main.rs: Kết hợp các module và tạo instance của cả hai loại nội dung đa phương tiện bằng các đầu vào được cung cấp. Gọi phương thức play trên từng instance để minh họa cách cùng một trait tạo ra đầu ra khác nhau tùy theo loại nội dung đa phương tiện.

Đầu ra của bạn cần theo định dạng sau:

Playing audio: {audio_title}
Playing video: {video_title}

Ví dụ: với đầu vào Bohemian Rhapsody và The Matrix:

Playing audio: Bohemian Rhapsody
Playing video: The Matrix

Bạn sẽ nhận hai đầu vào: tiêu đề âm thanh và tiêu đề video.

Tự làm thử

mod playable;
mod media;

use media::{Audio, Video};
use playable::Playable;

fn main() {
    // Đọc đầu vào
    let mut audio_title = String::new();
    std::io::stdin().read_line(&mut audio_title).expect("Failed to read line");
    let audio_title = audio_title.trim().to_string();
    
    let mut video_title = String::new();
    std::io::stdin().read_line(&mut video_title).expect("Failed to read line");
    let video_title = video_title.trim().to_string();
    
    // TODO: Tạo một instance Audio với audio_title
    
    // TODO: Tạo một instance Video với video_title
    
    // TODO: Gọi play() trên cả hai instance
}

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Rust online