cuốn sách gpt4 ai đã làm

chế độ lệnh

In lại Tác giả: Sahara Thời gian cập nhật: 26-12-2024 00:45:53 55 4
mua khóa gpt4 Nike

Chế độ lệnh thuộc vềhành viMột loại hoa văn.

Mẫu lệnh đóng gói các yêu cầu hoặc lệnh vào một đối tượng, cho phép chúng ta sử dụng các yêu cầu, yêu cầu hàng đợi hoặc nhật ký khác nhau và hỗ trợ các hoạt động có thể đảo ngược.

Ý tưởng cốt lõi của mẫu lệnh là tách người gửi yêu cầu khỏi người nhận yêu cầu, để người gửi không cần biết chi tiết cụ thể của yêu cầu.

Các kịch bản ứng dụng thực tế, chẳng hạn như các thao tác menu (sao chép, dán, hoàn tác, v.v.), xử lý giao dịch, lập lịch tác vụ đa luồng và không đồng bộ trong hệ thống GUI, v.v.

Trong cuộc sống thực, chẳng hạn, khi bạn đến nhà hàng để gọi đồ ăn, người phục vụ sẽ ghi đơn hàng của bạn vào danh sách, sau đó gửi danh sách đó đến nhà bếp sẽ làm món ăn bạn yêu cầu dựa trên danh sách. Danh sách này thực sự là một đơn đặt hàng.

Chế độ lệnh thường có các thành phần sau: .

  • Lệnh (giao diện lệnh/lớp trừu tượng): Xác định giao diện để thực thi các lệnh (thường là một phương thức, chẳng hạn như exec()) và cho phép tất cả các lớp lệnh cụ thể thực hiện lệnh exec() được sử dụng để thực hiện một thao tác.
  • ConcreteCommand (lệnh cụ thể): triển khai giao diện Lệnh và đóng gói thao tác cụ thể được yêu cầu gọi trong phương thức exec(). Mỗi lớp lệnh cụ thể tương ứng với một yêu cầu hoặc hành động cụ thể. Đối tượng lệnh cụ thể sẽ giữ một tham chiếu đến bộ thu (Receiver).
  • Người nhận: Biết cách thực hiện các hoạt động liên quan đến yêu cầu và đảm nhận logic nghiệp vụ cụ thể. Vai trò này thường là một lớp thực hiện các hoạt động hoặc nhiệm vụ thực tế.
  • Invoker (người gọi): Chịu trách nhiệm gọi đối tượng lệnh để thực hiện yêu cầu, giữ tham chiếu đến đối tượng lệnh và yêu cầu thực hiện lệnh khi cần. Trong trường hợp bình thường, người gọi sẽ không biết cụ thể những gì được thực hiện bên trong đối tượng lệnh.
  • Máy khách: Máy khách chịu trách nhiệm tạo đối tượng lệnh và thiết lập người nhận lệnh. Máy khách sẽ đặt các đối tượng lệnh này vào đối tượng người gọi và sau đó đối tượng người gọi có thể thực thi lệnh.

Mô phỏng mã hóa chế độ lệnh.

1. Xác định giao diện lệnh.

//Giao diện lệnh công cộng giao diện Yêu cầu { trống rỗng thi hành(); //Thực thi lệnh } 

2. Danh mục lệnh cụ thể.

// ConcreteCommand thực thi giao diện Command công cộng lớp học LightOnLệnh dụng cụ Yêu cầu { đèn chiếu sáng riêng; công cộng LightOnLệnh(Ánh sáng nhẹ) { this.light = ánh sáng } @Ghi đè công cộng trống rỗng thi hành() { light.turnOn(); //Thực hiện các thao tác cụ thể} } công cộng lớp học Ánh SángTắtLệnh dụng cụ Yêu cầu { đèn chiếu sáng riêng; công cộng Ánh SángTắtLệnh(Ánh sáng nhẹ) { this.light = ánh sáng } @Ghi đè công cộng trống rỗng thi hành() { light.turnOff(); //Thực hiện các thao tác cụ thể} } 

3. Người nhận.

// Người nhận - đối tượng thực hiện thao tác trên công cộng lớp học Ánh sáng { công cộng trống rỗng bật() { System.out.println("Đèn đang BẬT"); } công cộng trống rỗng tắt() { System.out.println("Đèn TẮT"); } } 

4. Người gọi.

// Invoker - đối tượng gọi lệnh công cộng lớp học Điều khiển từ xa { lệnh lệnh riêng; công cộng trống rỗng setCommand(Lệnh lệnh) { this.command = lệnh } công cộng trống rỗng nhấnNút() { lệnh.execute(); // Nhấn nút để thực hiện lệnh } } 

5. Khách hàng.

// Khách hàng - khách hàng công cộng lớp học Khách hàng { công cộng tĩnh trống rỗng chủ yếu(Chuỗi[] tranh luận) { Ánh sáng phòng kháchÁnh sáng = mới Ánh sáng(); // Tạo đối tượng lệnh Yêu cầu bật đèn = mới LightOnCommand(livingRoomLight); Yêu cầu đèn tắt = mới LightOffCommand(livingRoomLight); // Tạo đối tượng người gọi Điều khiển từ xa xa = mới Điều khiển từ xa(); // Đặt lệnh và thực thi remote.setCommand(lightOn); remote.pressButton(); // Đầu ra: Đèn BẬT remote.setCommand(lightOff); remote.pressButton(); // Đầu ra: Đèn TẮT } } 

Ưu điểm và nhược điểm của chế độ lệnh.

lợi thế:

  • Khả năng mở rộng mạnh mẽ: Hệ thống có thể được mở rộng bằng cách thêm các lớp lệnh mới mà không thay đổi các lớp hiện có. Chỉ cần triển khai lớp lệnh mới và chuyển nó cho người gọi.
  • Hỗ trợ thao tác hoàn tác: Chế độ lệnh rất phù hợp để thực hiện chức năng hoàn tác (Undo). Các lệnh cụ thể có thể lưu trạng thái trước khi thực hiện và hủy lệnh khi cần.
  • Hỗ trợ hoạt động xếp hàng: Các lệnh có thể được xếp hàng đợi hoặc ghi lại để hỗ trợ phát lại lệnh và các hoạt động khác.

thiếu sót:

  • Số lớp tăng lên: Mỗi đối tượng lệnh yêu cầu một lớp, điều này có thể khiến số lượng lớp tăng lên nhanh chóng, đặc biệt khi có nhiều thao tác trong hệ thống.
  • Thiết kế phức tạp hơn: Việc giới thiệu mẫu lệnh có thể dẫn đến một cấu trúc hệ thống phức tạp hơn mà có thể có cảm giác được thiết kế quá mức, đặc biệt là trong các hệ thống nhỏ.

Chế độ nguyên mẫu có thể được sử dụng để lưu lịch sử của các chế độ lệnh.

Sự gia tăng độ phức tạp trong thiết kế do các mẫu mang lại tăng theo yêu cầu và nó làm giảm sự kết hợp của các thành phần khác nhau của hệ thống.

Không dám dừng lại, không dám khóc, không dám phàn nàn, từ đêm khuya đến rạng sáng. -- Yến Sa Cửu Châu.

 

Cuối cùng, bài viết về chế độ lệnh này kết thúc tại đây. Nếu bạn muốn biết thêm về chế độ lệnh, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

55 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress