2025-02-09

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


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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *