简单工厂模式
声明:以下例子来自浪曦中的教程,不过有些改动,如果哪里有疑问,可直接访问浪曦网站
简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类.
转载自http://singlewolf.iteye.com
简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类.
- interface Car{
- public abstract void run();
- public abstract void stop();
- }
- class Beaz implements Car{
- public void run(){
- System.out.println("Beaz开车了");
- }
- public void stop(){
- System.out.println("Beaz停车了");
- }
- }
- class Ford implements Car{
- public void run(){
- System.out.println("Ford开车了");
- }
- public void stop(){
- System.out.println("Ford停车了");
- }
- }
- /**
- * 如果再想加入其它车(比如bicycle),那么只要继承Car接口,尽管添加子类即可
- * 而不需要再去改工厂类(Factory)
- */
- class Factory{
- public static Car getInstance(String type){
- Car c = null;
- try {
- c = (Car)Class.forName("com.dahai."+type).newInstance();
- } catch (InstantiationException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- return c;
- }
- }
- public class SimpleFactoryDemo{
- public static void main(String[] args) {
- Car c = Factory.getInstance("Ford");
- //Car c = Factory.getInstance("车");
- //此处做一个判断,就是防止如果输入的参数,在调用方法的时候
- //没有相关的类,这样就会报异常,所以做一个判断
- if(c!=null){
- c.run();
- c.stop();
- }else{
- System.out.println("出错了");
- }
- }
- }
interface Car{
public abstract void run();
public abstract void stop();
}
class Beaz implements Car{
public void run(){
System.out.println("Beaz开车了");
}
public void stop(){
System.out.println("Beaz停车了");
}
}
class Ford implements Car{
public void run(){
System.out.println("Ford开车了");
}
public void stop(){
System.out.println("Ford停车了");
}
}
/**
* 如果再想加入其它车(比如bicycle),那么只要继承Car接口,尽管添加子类即可
* 而不需要再去改工厂类(Factory)
*/
class Factory{
public static Car getInstance(String type){
Car c = null;
try {
c = (Car)Class.forName("com.dahai."+type).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return c;
}
}
public class SimpleFactoryDemo{
public static void main(String[] args) {
Car c = Factory.getInstance("Ford");
//Car c = Factory.getInstance("车");
//此处做一个判断,就是防止如果输入的参数,在调用方法的时候
//没有相关的类,这样就会报异常,所以做一个判断
if(c!=null){
c.run();
c.stop();
}else{
System.out.println("出错了");
}
}
}
转载自http://singlewolf.iteye.com