JAVA设计模式:工厂模式之抽象工厂

来源:互联网 发布:在职研究生知乎 编辑:程序博客网 时间:2024/06/15 21:55

抽象工厂模式的好处:
当增加需求的时候,不需要修改源代码,只需定义一个类实现Play接口,定义一个工厂类实现PlayFactory 即 定义类实现顶级接口,定义工厂类实现特定的接口
代码:

/** * 定义一个接口: * 方法:玩游戏 */package ac.bcc.cn.interf;public interface Play {    /**     * 玩的方法     */    public abstract void paly();}
/** *此类实现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");    }}
/** * 工厂类:使用多态,创建对象   * 实现了PlayFactory接口 */package ac.bcc.cn.factory;import ac.bcc.cn.clas.PlayBasketBale;import ac.bcc.cn.interf.Play;import ac.bcc.cn.interf.PlayFactory;public class BaseketBallGameFactory implements PlayFactory{    @Override    public Play creatInstance() {        return new PlayBasketBale();    }}
/** * 工厂类:使用多态,创建对象 * 实现了PlayFactory接口 */package ac.bcc.cn.factory;import ac.bcc.cn.clas.PlayComputer;import ac.bcc.cn.interf.Play;import ac.bcc.cn.interf.PlayFactory;public class ComputerGameFactory implements PlayFactory{    @Override    public Play creatInstance() {        return new PlayComputer();    }}
/** * 测试类 */package ac.bcc.cn.test;import ac.bcc.cn.factory.BaseketBallGameFactory;import ac.bcc.cn.factory.ComputerGameFactory;import ac.bcc.cn.interf.Play;public class Test {    public static void main(String[] args) {        //通过ballGameFactory工厂,获取打电子游戏对象        BaseketBallGameFactory ballGameFactory = new BaseketBallGameFactory();        Play bask = ballGameFactory.creatInstance();        bask.paly();        //通过computerGameFactory工厂,获取打电子游戏对象        ComputerGameFactory computerGameFactory = new ComputerGameFactory();        Play computer = computerGameFactory.creatInstance();        computer.paly();    }}

结果:
这里写图片描述

阅读全文
0 0
原创粉丝点击