Golang Command Design Pattern là gì.

Khái Niệm Trong lập trình hướng đối tượng, command design pattern là behaviroal, mục đích dùng để gói lại tất cả các thông tin cũng như action trên các logic khác nhau, bao gồm như tên biến tên function và parameter của function. Command design pattern có 4 điều khoản được liên kết với nhau:

Khái Niệm

Trong lập trình hướng đối tượng, command design patternbehaviroal, mục đích dùng để gói lại tất cả các thông tin cũng như action trên các logic khác nhau, bao gồm như tên biến tên function và parameter của function.
Command design pattern có 4 điều khoản được liên kết với nhau: command, receiver, invoker, client

  1. Command: A command được biết về việc nhận và thực thi các method của việc nhận. Giá trị các biến của phương thức nhận được lưu trong các command.
  2. Receiver: The receiver là object để thực thi những phương thức và cũng được store trong command thông qua command object bởi aggregation(cái này sẽ giải thích sau), receiver được thực hiện khi execute() method trong command được gọi.
  3. Invoker: The invoker object được biết là thực hiện execute() như thế nào, nó được xem như một người kế toán để thực thi các command và chỉ biết về các command interface(interface thế nào thì các bạn đọc thêm nhé, hoặc cần mình sẽ giải thích sau nè).
  4. Client: The client là quyết định sẽ thực thi tại điểm nào, command nào và pass command object đến invoker object.

Tóm gọn lại thì nếu không dùng command design pattern là khi một button mà có nhiều action kiểu như hình.

=> việc mỗi button sẽ có một class để xử lý logic khiến việc code trở nên khó bảo trì về sau do đó command design pattern ra đời.


Giải pháp được đùng:


=> thay vì mỗi button sẽ có một class chúng ta sẽ có một command để wrapper nó lại.


Code ví dụ mình sẽ dùng ngôn ngữ Golang:
ban click vào nhé: https://gitlab.com/shop-system2/go-libs/-/blob/master/design-pattern/behavioral/command.go

để biết thêm: https://en.wikipedia.org/wiki/Command_patternhttps://refactoring.guru/design-patterns/command


Nguồn: viblo.asia

Bài viết liên quan

9 Mẹo lập trình Web “ẩn mình” giúp tiết kiệm hàng giờ đồng hồ

Hầu hết các lập trình viên (kể cả những người giỏi) đều tốn thời gian x

Can GPT-4o Generate Images? All You Need to Know about GPT-4o-image

OpenAI‘s GPT-4o, introduced on March 25, 2025, has revolutionized the way we create visual con

Khi nào nên dùng main, section, article, header, footer, và aside trong HTML5

HTML5 đã giới thiệu các thẻ ngữ nghĩa giúp cấu trúc nội dung web một cách có

So sánh Webhook và API: Khi nào nên sử dụng?

Trong lĩnh vực công nghệ thông tin và phát triển phần mềm, Webhook và API là hai th