我有这些方法可以使用class作为API参数吗?
public class ReportService
{
public DataTable GetCustomerReportDataTable(String dateFrom, String dateTo, String cif, String customerName, String region, String branch, String salesCode);
public DataTable GetProductReportDataTable(String dateFrom, String dateTo, String cif, String customerName, String product, String region, String branch, String salesCode);
}
public class CustomerReportFilter
{
public String DateFrom { get; set; }
public String DateTo { get; set; }
public String CIF { get; set; }
public String CustomerName { get; set; }
public String Region { get; set; }
public String Branch { get; set; }
public String SalesCode { get; set; }
}
public class ProductReportFilter
{
public String DateFrom { get; set; }
public String DateTo { get; set; }
public String CIF { get; set; }
public String CustomerName { get; set; }
public String Product { get; set; }
public String Region { get; set; }
public String Branch { get; set; }
public String SalesCode { get; set; }
}
public class ReportService
{
public DataTable GetCustomerReportDataTable(CustomerReportFilter filter);
public DataTable GetProductReportDataTable(ProductReportFilter filter);
}
问:
什么,如果API调用者是从其他语言/技术?
他们会被绑定到CustomerReportFilter
和ProductReportFilter
类。
如果我创建构建器,如果将参数更改为属性,则基本相同。这意味着它是可选的,不是吗?如果我想使所有参数都是强制性的。没有IsNullOrEmpty检查合适的生成器模式? – asakura89 2015-01-21 08:35:37
在构建器的build()函数中,您可以检查参数的有效性。即使所有参数都是强制性的,使用Builder也是有意义的,因为在这么长的字符串列表中意外错误地放置参数很容易,而Builder则更容易产生语义。 – 2015-01-21 08:48:59