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

bfnvny8b  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(226)

我不知道这个问题是属于这里还是属于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)。这工作得很好,这样我就可以把所有的创建代码放在create方法中,并从createrandom方法调用它。因为这是关于选择策略(就像策略设计模式一样),我想知道是否有更好的解决方案。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题