Spring服务接口的实现类需要不同的方法签名

问题描述

我不知道这个问题是属于这里还是softwareengineering.stackexchange。 我有一个名为 car 的服务:

public interface CarSerivce{ Car create(String model);}

现在我想要两个功能,创建和随机创建。创建随机汽车不需要模型,服务应选择一个可用的随机模型。如此有效地这可能是实现:

@Service
public class CarServiceImpl implements CarService{
    public Car create(String name){...}
}

//This one cannot implement the interface
@Service
public class RandomCarServiceImpl{ public Car create(){...}}

一种解决方案是通过使用服务的类外部化创建一个随机名称并将其传递给服务。但这不是一种选择,因为这个例子是人为的,真实的例子需要一个相当复杂的随机生成算法来处理许多参数,而不仅仅是一个。 我的第二个想法是用两种方法实现一个实现,create(String name) 和 createrandom()(或者只是一个没有参数的重载创建)。这很好用,这样我就可以将所有创建代码放在 create 方法中并从 createrandom 方法调用它。 因为它是关于选择策略(就像策略设计模式一样)我想知道是否有更好的解决方案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)