Я разрабатываю API, и я хотел бы, чтобы он был простым в использовании. Итак, если у меня есть клиенты, выписки и платежи. Имеет ли смысл иметь такие объекты, как: Customer, CustomerHandler, Statement, StatementHandler, Payment, PaymentHandler? Таким образом, когда разработчик хочет что-то сделать с клиентами, которых он / она знает, чтобы создать CustomerHandler, тогда все возможные функции, которые он хотел бы выполнить с клиентом, находятся внутри обработчика.
Методы, такие как:
CustomerHandler:
- AddCustomer (клиент)
- GetCustomer (CUSTOMERID)
- GetCustomerCount ()
StatementHandler:
- GetStatement (StatementId)
- GetStatementCount (CUSTOMERID)
PaymentHandler:
- GetPaymentsByCustomer (CUSTOMERID)
- GetPayment (PaymentID)
- GetPaymentCountByCustomer (CUSTOMERID)
Таким образом, если разработчик хочет работать над получением платежей, он / она знает, что он идет в PaymentHandler. Мой коллега подумал, что такие функции, как GetPayments (customerID) принадлежат к классу, который управляет клиентом. Таким образом, это будет как Customer.GetPayments () AS Payments. Но если у меня есть какой-то другой объект, такой как Worker, будет Worker.GetPayments () AS Payments. Итак, я вижу логику с обоими подходами. Первый группирует вещи так, что, независимо от того, от кого поступает платеж, вы получаете все это из одного класса, имея такие функции, как GetPaymentsByCustomer (CustomerID) и GetPaymentsByWorker (WorkerID). Таким образом, не нужно сталкиваться с различными объектами обработчика или менеджера для получения платежей. Оба подхода имеют смысл для меня, а вы? Или мы оба вместе, и есть лучший способ сделать это?
Заранее спасибо!