例項講解Java工廠模式

this_heart_add_add發表於2014-05-03

本文例項講解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(”沒有對應的引數”);
}
}
}

程式碼就講到這裡,希望本文能對大家學習有所幫助。

相關文章