我希望在Java项目中使用设计模式,对我来说,工厂模式似乎最合适,因为它不太复杂,我在我的项目中找到了实现它的合适方案。
在这种情况下,我可以通过3个类来实现接口。我从tutorialspoint
了解了如何在Java中实现工厂模式。但是限制我的唯一问题是方法的名称与教程中的名称不同。有什么方法可以在这种情况下应用工厂设计模式吗?
答案 0 :(得分:3)
如果您使用的是Spring,则有更好的方法来实现。虽然不能称为工厂模式。您可以为每个实现创建@Bean,并在需要时使用特定的实现。或者,您可以根据场景使用唯一的限定符名称为@ Service,@ Component,@ Repository注释每个实现类,并使用@Qualifier(“ qualifier”)注释@Autowired它们。例如:
interface MyInterface {
// method signature
}
@Component("myClass1")
class MyClass1 implements MyInterface{
// code
}
@Component("myClass2")
class MyClass2 implements MyInterface{
// code
}
public class Main{
@Autowired
@Qualifier("myClass1")
MyInterface myClass1;
@Autowired
@Qualifier("myClass2")
MyInterface myClass2;
public static void main(){
myClass2.func1();
myClass1.func2();
}
}
如果您不想使用Spring依赖注入,可以这样做
interface MyInterface {
public void invoke();
}
class MyClass1 implements MyInterface{
public void myMethod(){
}
public void invoke(){
myMethod();
}
}
class MyClass12 implements MyInterface{
public void someDifferentName(){
}
public void invoke(){
someDifferentName();
}
}
立即调用invoke()
方法。