千家信息网

java如何实现抽象工厂模式

发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,小编给大家分享一下java如何实现抽象工厂模式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!抽象工厂又被称为超级工厂 实例
千家信息网最后更新 2024年10月01日java如何实现抽象工厂模式

小编给大家分享一下java如何实现抽象工厂模式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

抽象工厂又被称为超级工厂

实例解释:

  • 一个人可以有一台电脑和一台手机,但是本人不去生成,本人只是去使用

  • 有个超级工厂(AbstractFactory)抽象工厂,它下面有两个代工厂(1.专门生产手机的工厂,2.专门生产电脑的工厂)

  • 负责生产电脑的工厂,就是一个简单工厂模式。

  • 负责生产手机的工厂,也是一个简单手机工厂模式。

代码实现逻辑:

  • 首先创建一个电脑接口--Computer,它只有draw()方法,它下面有两个牌子,

    • Dell 实体类,实现了draw()

    • Lenvo 实体类,实现了draw()

  • 然后创建一个手机接口---phone,它只有call()方法,它也有两个牌子(实体类)

    • Mi 实体类

    • HuaWei实体类

  • 然后定义一个AbstractFactory抽象工厂,它有两个产品(手机,电脑)

  • 手机工厂继承抽象工厂,电脑工厂继承抽象工厂

  • 然后定义一个产品工厂创建抽象工厂

  • 最后demo类使用产品工厂

代码: 第一步 Computer,phone

public interface Computer {        void draw();//画图功能}public interface Phone {        void call();//打电话功能}

第二步:小米和华为实现Phone接口

public class Mi implements Phone{        @Override        public void call() {                System.out.println("小米手机打电话");        }}public class HuaWei implements Phone{        @Override        public void call() {                System.out.println("华为手机打电话");        }}

第三步:创建AbstractFactory抽象工厂,开放电脑和手机两个接口

public abstract class AbstractFactory {        public abstract Computer getComputer(String computer);        public abstract Phone getPhone(String phone);}

第四:手机工厂继承抽象工厂 ,电脑工厂继承抽象工厂

public class PhoneFactory extends AbstractFactory{        @Override        public Computer getComputer(String computer) {                return null;        }        @Override        public Phone getPhone(String phone) {                if(phone.equalsIgnoreCase("Mi")){                        return new Mi();                }else if(phone.equalsIgnoreCase("HuaWei")){                        return new HuaWei();                }                return null;        }}
public class ComputerFactory extends AbstractFactory{        @Override        public Computer getComputer(String computer) {                if(computer == null){                        return null;                }                if(computer.equalsIgnoreCase("Dell")){                        return new Dell();                }else if(computer.equalsIgnoreCase("Lenvo")){                        return new  Lenvo();                }                return null;        }        @Override        public Phone getPhone(String phone) {                return null;        }}

第5:FactoryProducer 来获取 AbstractFactory 对象

public class FactoryProducer {        public static AbstractFactory getFactory(String choice){                if(choice.equalsIgnoreCase("Computer")){                        return new ComputerFactory();                }else if(choice.equalsIgnoreCase("Phone")){                        return new PhoneFactory();                }                return null;        }}

第6:demo使用产品工厂

public class AbstractDemo {        public static void main(String[] args) {                //获取手机工厂                AbstractFactory phoneFactory = FactoryProducer.getFactory("Phone");                //获取小米手机的对象                Phone mi = phoneFactory.getPhone("Mi");                //调用小米的方法                mi.call();        }}

以上是"java如何实现抽象工厂模式"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

工厂 手机 电脑 两个 实体 模式 产品 小米 接口 生产 方法 篇文章 专门生产 代码 内容 功能 只有 对象 牌子 华为 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库系统维护 重庆网络安全知识讲座 嵌入式结构软件开发 数据库查询的exists 奥的斯服务器怎么屏蔽 支付宝显示数据库中无此身份证 缀初网络技术ppio 网络安全属于安全生产范围 王者荣耀服务器10m流量 软件开发中的木桶原则 英雄联盟服务器维护 长宁区电商软件开发诚信服务 网络安全事件与应急处置 怎么统计有重复的数据库 软件开发后总是敲键盘 苹果电脑服务器账户访问拒绝 哪个网站是软件开发者试水网站 乌海软件开发报价 服务器部署在本地安全吗 通过网络技术学习宪法 电信行业网络安全风险管理 数字广电网络技术是什么 盐城工学院网络安全学习 美图软件开发预期困难 《中小企业网络技术》 戴尔服务器后面按钮灯变黄色 社招面试软件开发自我介绍 预防网络安全知识有哪些 金山区进口网络技术开发质量保障 服务器按应用层划分为哪些种类
0