Avatar
1
kazensouls Beginner
kazensouls Beginner
Design Pattern dành cho multi provider service
Em chào anh Dũng,

Em có một bài toán nhỏ sau mong anh chia sẻ:

Hiện tại em có 1 app dùng PHP Laravel, chức năng cho phép người dùng mua tên miền, app sẽ kết nối đến 1 nhà cung cấp và tiến hành mua qua tài khoản reseller mặc định (Namecheap, Namesilo,...). Hiện tại em đã có job lấy được nhà cung cấp giá rẻ nhất tại 1 thời điểm, em mong muốn anh giải đáp dùng DP nào và code sample giúp em service mà tại thời điểm đó user sẽ kết nối đến provider rẻ nhất (đã lấy đc) để tiến hành mua. Em hiểu rằng cần có 1 interface để các class provider implement, nhưng chưa biết cách ứng dụng chúng hiệu quả và clear nhất. Em rất mong anh giúp đỡ ạ. Các class provider hiện tại đều có các method chung: checkDomain, getPrice, createOrder, cancelOrder.

Em cảm ơn anh

  • Answer
laravel php
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
Nếu anh không nhầm thì em sẽ làm thế này:
  1. Có một producer liên tục tìm kiếm nhà cung cấp sau đó lưu thông tin vào cơ sở dữ liệu (DB).
  2. Khi user request thì sẽ query danh sách nhà cung cấp theo giá tăng dần để lấy ra được nhà cung cấp giá rẻ nhất.

Vậy thì:

Ở bước 1 em có thể sử dụng chain of responsibility để tạo ra một lớp DataPipeline để crawl dữ liệu profile và lưu vào cơ sở dữ liệu định kỳ.

Ở bước 2 em chỉ cần select thì em sử dụng repository do framework cung cấp thì đây chính là bridge design pattern.

Không biết anh có hiểu nhầm ý em ở đâu không?

  • 1
  • Reply
e cảm ơn a đã cho e keyword về pattern, e sẽ nghiên cứu thử, nếu có vướng e sẽ hỏi a tiếp. chúc a một buổi tối tốt lành  –  kazensouls 1693151338000