1. 程式人生 > >java工廠模式Factory

java工廠模式Factory

用戶 face get package 告訴 users rsh void div

工廠模式:

1)我們首先要設計車汽車需要那些流程(face)

package light.zhang.model.model.facotry;

/**
 * 車子建造過程,定義好流程
 * @author witts
 *
 */
public interface ICarface {
    /**
     * 繪制圖片
     */
    void drawImage();
    /**
     * 設計模型
     */
    void createModel();
    /**
     * 實現生產
     */
    void implCar();
    /**
     * 測試車子
     
*/ void testCar(); }

2.汽車生產商(實現)

package light.zhang.model.model.facotry;

/**
 * 奧迪生廠商
 * @author witts
 *
 */
public class AodiCompany  implements ICarface { 
    @Override
    public void drawImage() { 
        System.out.println("奧迪公司-圖片模型");
    }

    @Override
    public void createModel() { 
        System.out.println(
"奧迪公司-創建模型"); } @Override public void implCar() { System.out.println("奧迪公司-生產車體"); } @Override public void testCar() { System.out.println("奧迪公司-測試車體"); } }

package light.zhang.model.model.facotry;

/**
* 寶馬公司
* @author witts
*/
public class BMWCompany implements ICarface {
@Override
public void drawImage() {
System.out.println("寶馬公司-圖片模型");
}

@Override
public void createModel() {
System.out.println("寶馬公司-創建模型");
}

@Override
public void implCar() {
System.out.println("寶馬公司-生產車體");
}

@Override
public void testCar() {
System.out.println("寶馬公司-測試車體");
}

}

3)4S店現在要整理奧迪寶馬的車,4S店就是一個工廠,他負責把奧迪寶馬的汽車整理,用戶去買車只需要告訴銷售員我要買什麽車

package light.zhang.model.model.facotry;

/**
 * 4S店開始整理要銷售那些車?
 * @author witts
 *
 */
public class Car4SDianFactory {
    
    public ICarface getCar(int type) {
         if(type == 1) {
             return new AodiCompany();
         }
         if(type == 2) {
             return new BMWCompany();
         }
         return null;
    }
}

4)用戶開始買車(調用)

package light.zhang.model.model.facotry;

/**
 * 用戶開始去4S店買車
 * @author witts
 *
 */
public class UserShoppingCar {
    
    public static void main(String[] args) {
        Car4SDianFactory factory=new Car4SDianFactory();
        ICarface aodiCar=factory.getCar(1);//奧迪公司的汽車
        aodiCar.testCar();
        
        ICarface bmwCar =  factory.getCar(2);//寶馬公司的汽車
        bmwCar.testCar();
    }
}

java工廠模式Factory