Spring设计模式剖析之工厂设计模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。
这种类型的设计模式属于创建型模式,它提供了一种 创建对象的最佳方式。它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的 产品对象。
一、工厂模式案例:
1.创建Product以及Product的实现类Computer与Tablet
public interface Product{
void show();
}
public class Computer implements Product{
@Override
public void show(){
System.out,println("Mac Book Pro 2019");
}
}
public class Tablet implements Product{
@Override
public void show(){
System.out,println("Ipad Pro 2020");
}
}
2.创建产品工厂ProductFactory
public class ProductFactory{
public Product ShowInfo(String productName){
if(productName.equals("computer")){
return new Computer();
}else if(productName.equals("tablet")){
return new Tablet();
}else{
return null;
}
}
}
3.创建测试 ProductFactoryTest
public class ProductFactoryTest {
public static void main(String[] args) {
//创建ProductFactory
ProductFactory factory = new ProductFactory();
//获取Computer对象
Product computer = factory.ShowInfo("computer");
computer.show();
//获取Tablet
Product tablet = factory.ShowInfo("tablet");
tablet.show();
}
}
结果:
Mac Book Pro 2019
Ipad Pro 2020
二、BeanFactory工厂模式
BeanFactory 中有多个getBean()的方法
案例:
1. 在spring-factory.xml中吧上述computer,与tablet 类写成Bean的方式
<bean id="computer" class="com.tukecloud.factory.Computer"/>
<bean id="tablet" class="com.tukecloud.factory.Tablet"/>
2.测试:
public class BeanFactoryTest {
public static void main(String[] args) {
Resource resource = new ClassPathResource("spring-factory.xml");
BeanFactory beanFactory = new XmlBeanFactory(resource);
Product tablet = (Product) beanFactory.getBean("tablet");
tablet.show();
}
}
结果:
Ipad Pro 2020