0
点赞
收藏
分享

微信扫一扫

java中工厂模式-抽象工厂的简单实现

4要素 1多个抽象的产品(产品类型不同) 2多个具体的产品实现类 3抽象工厂 4具体的工厂实现类 5调用

1多个抽象的产品(产品类型不同)

//产品---手机
public interface PhoneProduction {
    /* 打电话  */
    void call();

    /* 玩游戏  */
    void paly();
}
//产品---ipad
public interface IpadProduction {
    /* 自助学习  */
    void learn();

    /* 音乐播放  */
    void music();
}

2多个具体的产品实现类

//华为手机
@Slf4j
public class HwPhone implements PhoneProduction{
    @Override
    public void call() {
        log.info("华为手机实现打电话功能");
    }

    @Override
    public void paly() {
        log.info("华为手机适配玩游戏功能");
    }
}
//华为平板
@Slf4j
public class HwIpad implements IpadProduction {
    @Override
    public void learn() {
        log.info("华为平板实现自助学习功能");
    }

    @Override
    public void music() {
        log.info("华为平板实现播放音乐功能");

    }
}

//苹果手机
@Slf4j
public class IPhone implements PhoneProduction{
    @Override
    public void call() {
        log.info("苹果手机实现打电话功能");
    }

    @Override
    public void paly() {
        log.info("苹果手机适配玩游戏功能");
    }
}

//苹果平板
@Slf4j
public class Ipad implements IpadProduction {
    @Override
    public void learn() {
        log.info("苹果平板实现自助学习功能");
    }

    @Override
    public void music() {
        log.info("苹果平板实现播放音乐功能");

    }
}

3抽象工厂

//这个工厂既能生产平板又能生产手机
public interface IProductionFactory {

    PhoneProduction phoneProduction();

    IpadProduction ipadProduction();
}

4具体的工厂实现类

//苹果工厂
public class AppleFactory implements IProductionFactory {
    @Override
    public PhoneProduction phoneProduction() {
        return new IPhone();
    }

    @Override
    public IpadProduction ipadProduction() {
        return new Ipad();
    }
}
//华为工厂
public class HwFactory implements IProductionFactory{
    @Override
    public PhoneProduction phoneProduction() {
        return new HwPhone();
    }

    @Override
    public IpadProduction ipadProduction() {
        return new HwIpad();
    }
}

5测试

public class TestPro {
    public static void main(String[] args) {
        /* 生产华为系列产品  包括平板和手机*/

        /* 首先获得华为工厂  */
        IProductionFactory hwFactory = new HwFactory();
        IpadProduction hwIpad = hwFactory.ipadProduction();
        /* 平板功能配置  */
        hwIpad.learn();
        hwIpad.music();
        PhoneProduction hwPhone = hwFactory.phoneProduction();

        /* 手机功能配置  */
        hwPhone.call();
        hwPhone.paly();

        /* 生产苹果系列产品  包括平板和手机  同上*/
    }
}

举报

相关推荐

0 条评论