其实工厂模式结构并不复杂,其目的只有一个就是解耦.废话少说看例子吧.这个HelloWorld就足够说明工厂模式在Java语言里的实现方法.
另外这里还有一个更为完整的例子,可用Eclipse打开
https://files.cnblogs.com/starstroll/ModeTrain2.rar
/**
* IOC模式简单实例
*/
/**
* 运行类
*/
public class MainClass {
/**
* 主函数
*/
public static void main(String[] args) {
try {
PrinterFactory.createPrinter().printByString("Hello World~!");
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
/**
* Printer接口
*/
interface IF_Printer {
/**
* 接口printByString方法声明
*/
public void printByString(String str);
}
/**
* MyPrinter实现Printer接口
*/
class MyPrinter implements IF_Printer {
public void printByString(String str) {
System.out.println(str);
}
}
/**
* IF_Printer对象工厂,用于创建实现接口的类对象
*/
class PrinterFactory {
/**
* 工厂方法,返回IF_Printer接口实例
*/
public static IF_Printer createPrinter() throws InstantiationException,
ClassNotFoundException, IllegalAccessException {
String str = "MyPrinter";//通过字符串寻找实现接口的类,字符串可从文件中读取获得,从而实现IOC模式
return (IF_Printer) Class.forName(str).newInstance();//返回IF_Printer接口实例
}
}
* IOC模式简单实例
*/
/**
* 运行类
*/
public class MainClass {
/**
* 主函数
*/
public static void main(String[] args) {
try {
PrinterFactory.createPrinter().printByString("Hello World~!");
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
/**
* Printer接口
*/
interface IF_Printer {
/**
* 接口printByString方法声明
*/
public void printByString(String str);
}
/**
* MyPrinter实现Printer接口
*/
class MyPrinter implements IF_Printer {
public void printByString(String str) {
System.out.println(str);
}
}
/**
* IF_Printer对象工厂,用于创建实现接口的类对象
*/
class PrinterFactory {
/**
* 工厂方法,返回IF_Printer接口实例
*/
public static IF_Printer createPrinter() throws InstantiationException,
ClassNotFoundException, IllegalAccessException {
String str = "MyPrinter";//通过字符串寻找实现接口的类,字符串可从文件中读取获得,从而实现IOC模式
return (IF_Printer) Class.forName(str).newInstance();//返回IF_Printer接口实例
}
}
另外这里还有一个更为完整的例子,可用Eclipse打开
https://files.cnblogs.com/starstroll/ModeTrain2.rar