工廠模式:
前提:實作同一個接口,即頂級接口是一個接口
代碼
- 定義一個玩遊記的接口
/**
* 定義一個接口:
* 方法:玩遊戲
*/
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:結果: