工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
介绍
- 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
- 主要解决接口选择的问题
实现
- 1.创建一个接口
public interface FactoryTest {
void test();
}
- 2.创建实现接口的实体类。
public class ATest implements FactoryTest {
@Override
public void test() {
System.out.println("ATest");
}
}
public class BTest implements FactoryTest {
@Override
public void test() {
System.out.println("BTest");
}
}
public class CTest implements FactoryTest {
@Override
public void test() {
System.out.println("CTest");
}
}
- 3.创建一个工厂,生成基于给定信息的实体类的对象。
public class ChooseFactory {
//使用 getTest 方法获取形状类型的对象
public FactoryTest getTest(String test){
if(test == null){
return null;
}
if(test.equals("ATest")){
return new ATest();
} else if(test.equals("BTest")){
return new BTest();
} else if(test.equals("CTest")){
return new CTest();
}
return null;
}
}
- 4.使用该工厂,通过传递类型信息来获取实体类的对象。
public class FactoryDemo {
public static void main(String[] args) {
ChooseFactory chooseFactory = new ChooseFactory();
//获取 Factory 的对象,并调用它的 getTest 方法
FactoryTest testA = chooseFactory.getTest("ATest");
//调用 FactoryTest 的 test方法
testA.test();
//获取 Factory 的对象,并调用它的 getTest 方法
FactoryTest testB = chooseFactory.getTest("BTest");
//调用 FactoryTest 的 test方法
testB.test();
//获取 Factory 的对象,并调用它的 getTest 方法
FactoryTest testC = chooseFactory.getTest("CTest");
//调用 FactoryTest 的 test方法
testC.test();
}
}
- 5.打印结果
Connected to the target VM, address: '127.0.0.1:0', transport: 'socket'
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
ATest
BTest
CTest
Disconnected from the target VM, address: '127.0.0.1:0', transport: 'socket'
来源:CSDN
作者:帅气Dee海绵宝宝
链接:https://blog.csdn.net/xyjcfucdi128/article/details/103496968