本文实例讲解Java工厂模式
简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。
package com.dz.factory;
//定义一个具有通用性的接口
interface Car
{
public void run();
public void stop();
}
class Benz implements Car
{
public void run() {
System.out.println(”Benz运行中”);
}
public void stop() {
System.out.println(”Benz停止中”);
}
}
class Ford implements Car
{
public void run() {
System.out.println(”Ford运行中”);
}
public void stop() {
System.out.println(”Ford停止中”);
}
}
//简单工厂类1
class Factroy1{
public static Car getCarInstance()
{
return new Benz(); //new Ford();
}
}
//简单工厂类2
class Factroy2{
public static Car getCarInstance(String type)
{
Car car=null;
if(”Benz”.equals(type))
{
car=new Benz();
}
if(”Ford”.equals(type))
{
car=new Ford();
}
return car;
}
}
//简单工厂类3
class Factroy3{
public static Car getCarInstance(String type)
{
Car car=null;
try
{
//JAVA反射机制 通过一个字符串可以实例化一个类的对象
car=(Car) Class.forName(”com.dz.factory.” type).newInstance(); //完整的包名和类名 切记包名全
}catch(Exception e)
{
e.printStackTrace();
}
return car;
}
}
public class FactoryDemo {
public static void main(String [] args)
{
//初如调用
Car car0=new Benz();//Car car=new Ford();
car0.run();car0.stop();
//上面是不管Benz和Ford为父类Car紧密耦合
//简单工厂1调用
Car car1=Factroy1.getCarInstance();
car1.run();car1.stop();
//简单工厂2调用
Car car2=Factroy2.getCarInstance(”Ford”);
if(car2!=null)
{
car2.run();car2.stop();
}else
{
System.out.print(”没有对应的参数”);
}
//简单工厂3调用
Car car3=Factroy3.getCarInstance(”Benz”);
if(car3!=null)
{
car3.run();car3.stop();
}else
{
System.out.print(”没有对应的参数”);
}
}
}
代码就讲到这里,希望本文能对大家学习有所帮助。