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

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ