我有一个名为GetObjectsRelatedToAType的方法,例如GetCarsRelatedToDealership。从web服务或一般方法签名的角度来看,哪种方法更好:
List<Cars> GetCarsRelatedToDealership( Dealership dealership );或
List<Cars> GetCarsRelatedToDealership( id dealership );我倾向于喜欢对象方法,因为它在确保方法的源输入有效方面更加有力。想法/建议?
发布于 2011-04-07 02:02:17
对于web服务,我尝试最小化通过网络发送的数据量。如果你还需要一个方法,我可能会让成员方法"GetRelatedCars“用于”经销商“类/接口。当web服务调用到来时,您可以验证它是一个真正的“经销商”(调用者有权使用它),方法是根据id获取该对象,并对该对象使用"GetRelatedCars“方法。
发布于 2011-04-07 01:54:34
ID是该方法运行所需的唯一信息吗?如果是这样的话,我就不管它了。
发布于 2011-04-07 02:03:56
对象方法存在问题。
Dealership dealership;
GetCarsRelatedToDealership(dealership); // dealership is null
var dealership = new Dealership();
GetCarsRelatedToDealership(dealership); // dealership has no id在这些情况下,对象不会为您提供任何优于id的优势。id可能是错误的,但您可以验证这一点。该对象使事情变得更加复杂。
在处理服务时,我会创建一对请求/响应类。这使您可以确保您的签名永远不需要更改。您的请求或响应对象可能会更改,但方法签名不会更改。
现在,我可以传递经销商id,以及谁在请求信息,并确保允许请求的用户查看该经销商的库存。只是通过经销商或id不允许的东西。
public class CarsRequest
{
public int DealershipId { get; set; }
public int RequesterId { get; set; }
}
public class CarsResponse
{
public Car[] Cars { get; set; }
}
CarsResponse GetCarsRelatedToDealership(CarsRequest request);https://stackoverflow.com/questions/5570772
复制相似问题