我正在为贺卡写一个API。
卡片只包含行列表和卡片ID。卡片上有一种叫做问候的方法。
一行只是一组字符。
我有一个接口卡和几个实现这个接口的具体类,即ChristmasCard、EasterCard.等。
我正在编写一个API方法,它通过ID返回卡片。
从设计的角度来看,编写基于ID的任何类型卡片的单一API方法更好,还是为每种卡类型编写API更好?
发布于 2019-11-29 10:21:03
这类问题的答案总是一样的:它依赖于,所有的设计模式都有权衡,这就是软件工程。
不过,总的来说,我的方法如下所示。
因此,如果Card是抽象并包含id,那么您可能应该定义返回任何类型的findById (这意味着它将返回抽象类型Card),因为该操作仅使用与Card类的派生项无关的id字段。通过这种方式,API代码将与Card接口的特定实现解耦。如果希望将代码重用到共享相同逻辑的其他Entities中,则可以通过使用泛型来更进一步。
如果您按照您的建议为每个卡片类型编写了一个API,那么您的API将耦合到实现中,因此添加的每一个新派生程序也会影响您的API (您可能应该将新添加的类型添加到您的API中)。
一般来说,您希望依赖于抽象而不是实现细节()。
https://stackoverflow.com/questions/59096598
复制相似问题