栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

设计模式-手机生产-抽象工厂模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式-手机生产-抽象工厂模式

抽象工厂的定义

  抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

  在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。

场景案例

  抽象工厂的应用场景案例说明,如下图所示,我们要实现不同品牌的手机的创建,opp手机对象是一个抽象对象,它的实现类有两个一个是低配版的oppo手机,一个是高配版的oppo手机。vivo手机对象也是一个抽象对象,它的实现类也有低配版vivo手机和高配版vivo手机。然后还需要一个抽象工厂,而抽象工厂的两个子类一个是低配版手机工厂专门负责生产低配置的各个品牌的手机,一个是高配版手机工厂专门用来生产高配置的各个品牌的手机工厂。

代码实现

  使用抽象工厂模式实现不同配置的不同品牌手机的创建操作的流程图如下图所示:

Oppo.java
public interface Oppo {
    
    void photograph();
}
LowOppo.java
public class LowOppo implements Oppo {
    @Override
    public void photograph() {
        System.out.println("低配版oppo手机拍照中。。。400像素");
    }
}
HighOppo.java
public class HighOppo implements Oppo {
    @Override
    public void photograph() {
        System.out.println("高配版oppo手机拍照中。。。1200像素");
    }
}
Vivo.java
public interface Vivo {
    
    void photograph();
}
LowVivo.java
public class LowVivo implements Vivo {
    @Override
    public void photograph() {
        System.out.println("低配版vivo拍照中。。。。像素500");
    }
}
HighVivo.java
public class HighVivo implements Vivo {
    @Override
    public void photograph() {
        System.out.println("高配版vivo拍照中。。。。像素1000");
    }
}
IPhoneFactory.java
interface IPhoneFactory {

    
    Vivo createVivo();

    
    Oppo createOppo();
}
LowPhoneFactory.java
public class LowPhoneFactory implements IPhoneFactory {
    @Override
    public Vivo createVivo() {
        return new LowVivo();
    }

    @Override
    public Oppo createOppo() {
        return new LowOppo();
    }
}
HighPhoneFactory.java
public class HighPhoneFactory implements IPhoneFactory {
    @Override
    public Vivo createVivo() {
        return new HighVivo();
    }

    @Override
    public Oppo createOppo() {
        return new HighOppo();
    }
}
Client.java
public class Client {
    public static void main(String[] args) {
        // 创建低配版工厂
        IPhoneFactory lowPhoneFactory = new LowPhoneFactory();
        Oppo lowOppo = lowPhoneFactory.createOppo();
        Vivo lowVivo = lowPhoneFactory.createVivo();
        // 创建高配置工厂
        IPhoneFactory highPhoneFactory = new HighPhoneFactory();
        Oppo highOppo = highPhoneFactory.createOppo();
        Vivo highVivo = highPhoneFactory.createVivo();
        // 执行各个手机的拍照功能
        lowOppo.photograph();
        lowVivo.photograph();
        highOppo.photograph();
        highVivo.photograph();
    }
}
运行结果
低配版oppo手机拍照中。。。400像素
低配版vivo拍照中。。。。像素500
高配版oppo手机拍照中。。。1200像素
高配版vivo拍照中。。。。像素1000
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445433.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号