正确的业务逻辑类接口

时间:2014-04-12 08:15:33

标签: c# oop

在具有与业务逻辑分离的UI的程序中;我有一个车库,包含一个车辆列表(licensePlate,coniditionOfVehicle)

我想允许Garage的用户在特定的条件下接收所有licensePlates的列表.OvVehicle。

  1. 该方法的返回类型应该是什么?字符串的IList(正是要求所述)与车辆的IList(允许客户看到汽车的更多属性,从而提高可扩展性)

  2. 我们甚至被允许退回车辆?这将允许用户改变我们可能不希望他做的事情。 (假设客户可以访问" Vehicle",因为它使用Builder接收车辆,然后调用Garage.AddVehicle(车辆)将其添加到车库)

    < / LI>

    由于

1 个答案:

答案 0 :(得分:2)

YAGNI (You Arent Gonna Need It)原则声明:

  

在您真正需要它们时始终实施,而不是在您实施时   只是预见到你需要它们。

如果要求说“用户需要许可证列表”和“#39;然后简单地返回用户需要的东西而不试图预见他们可能需要什么。否则你在预测上浪费时间,你正在添加可能的问题(用户更换车辆),你的代码对于用户(他们期望licensePlates)和维护者(他们不知道新要求来自何处)都是意料之外的来自),最糟糕的事情 - 新功能&#39;可能没有被用户使用。

您试图通过返回整车实例来违反的另一个原则是KISS (Keep It Simple, Stupid)

  

如果您可以选择简单的解决方案和复杂的解决方案,那么   选择复杂性将是愚蠢的。

返回字符串列表是更简单的解决方案,满足要求。没有必要为您的系统添加不必要的复杂性。