2012-12-20 27 views
5

Khi tạo một API trong python, tôi không chắc chắn cách tiếp cận để tạo ra một cá thể của đối tượng cơ bản với init.Mẫu thiết kế OO để khởi tạo đối tượng trong API

Khi tạo một thể hiện của đối tượng trong API, người dùng sẽ có khả năng nhất muốn đối tượng là một trong hai điều:

  1. Một thể hiện của một đối tượng mà đã tồn tại trong những gì API đang được gọi chống lại
  2. Tạo một đối tượng mới trong những gì các API được gọi là chống lại

có một mẫu thiết kế được chấp nhận cho việc này? Nên init chỉ cần tạo một đối tượng rỗng, và sau đó người tiêu dùng phải gọi một phương thức get hoặc set? Hoặc có lẽ init nên đưa ra một đối số như thế nào nếu đây là một nhận được hoặc thiết lập? Hoặc cuối cùng, nên nhận được hoặc thiết lập được suy ra từ các đối số để init?

Trả lời

2

Tôi không thể nghĩ ra một mẫu thiết kế để phù hợp chính xác những gì bạn mô tả, kể từ:

  • Factory pattern thường giao dịch với một gia đình (thứ bậc) của các lớp học.
  • Builder pattern thường giao dịch với các đối tượng phức tạp bao gồm nhiều lớp.

Làm thế nào để quá tải API sau?

Khi gọi không có tham số:

custom_API() 

sau đó chỉ cần tạo một đối tượng cơ bản mới với một số giá trị mặc định hợp lý và để cho việc sử dụng của người tiêu dùng nhận/đặt cấu hình nó.

Khi gọi với một chìa khóa tra cứu của một số loại:

custom_API("abc") 

sau đó trả lại đối tượng tương ứng, hoặc một danh sách các đối tượng của khóa tra cứu là mơ hồ, hoặc None nếu không có đối tượng phù hợp có thể được tìm thấy.

Các vấn đề liên quan