天天看點

JAVA設計模式之工廠模式(靜态工廠模式)

工廠模式:

前提:實作同一個接口,即頂級接口是一個接口

代碼

  1. 定義一個玩遊記的接口
/**
 * 定義一個接口:
 * 方法:玩遊戲
 */
package ac.bcc.cn.interf;

public interface Play {
    /**
     * 玩的方法
     */
    public abstract void paly();
}           

2.定義兩個實作類

/**
 *此類實作Play接口
 */
package ac.bcc.cn.clas;

import ac.bcc.cn.interf.Play;

public class PlayBasketBale implements Play {

    @Override
    public void paly() {
        System.out.println("正在打籃球");
    }

}
/**
 * 此類實作Play接口
 */
package ac.bcc.cn.clas;

import ac.bcc.cn.interf.Play;

public class PlayComputer implements Play{

    @Override
    public void paly() {
        System.out.println("正在打LOL");
    }

}
           

3.建立工廠類

/**
 * 工廠類:使用多态,建立對象
 */
package ac.bcc.cn.factory;

import ac.bcc.cn.clas.PlayBasketBale;
import ac.bcc.cn.clas.PlayComputer;
import ac.bcc.cn.interf.Play;

public class GameFactory {

    /**
     * 生成 打籃球對象
     * @return
     */
    public static Play basketBaleGame(){
        return new PlayBasketBale();
    }
    /**
     * 生成打電子遊戲對象
     * @return
     */
    public static Play computerGame(){
        return new PlayComputer();
    }
}
           

4.測試

測試類
/**
 * 測試類
 */
package ac.bcc.cn.test;

import ac.bcc.cn.factory.GameFactory;
import ac.bcc.cn.interf.Play;

public class Test {
    public static void main(String[] args) {
        //通過工廠,擷取打電子遊戲對象
        Play computerGame = GameFactory.computerGame();
        computerGame.paly();
        //通過工廠,擷取打電子遊戲對象
        Play basketBaleGame = GameFactory.basketBaleGame();
        basketBaleGame.paly();
    }
}           

5:結果:

JAVA設計模式之工廠模式(靜态工廠模式)

繼續閱讀