Java工厂模式实例分析

发布时间:2022-02-28 09:15:38 作者:iii
来源:亿速云 阅读:172

今天小编给大家分享一下Java工厂模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

优点

1.一个调用者想创建一个对象,只要知道其名称就可以了。

2.扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。

3.屏蔽产品的具体实现,调用者只关心产品的接口。

缺点

1.每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事。

使用场景

1.日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。

2.数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。

3.设计一个连接服务器的框架,需要三个协议,“POP3”、“IMAP”、“HTTP”,可以把这三个作为产品类,共同实现一个接口。

一、实现方式

例如:我们需要在电商平台购买一台手机,我们并不需要去关心手机生产厂商是如何把手机生产出来的,我们只需要在搜索框输入:华为手机,小米手机,就能购买到我们想要的手机了。下面看看具体实现吧。

1、定义一个接口

package com.asurplus.common.factory;
public interface Phone {
    /**
     * 获取手机
     *
     * @return
     */
    String getPhone();
}

2、定义两个接口实现类

package com.asurplus.common.factory;
/**
 * 华为手机实现类
 */
public class HuaweiPhone implements Phone {
    @Override
    public String getPhone() {
        return "华为手机";
    }
}
package com.asurplus.common.factory;
/**
 * 小米手机实现类
 */
public class XiaomiPhone implements Phone {
    @Override
    public String getPhone() {
        return "小米手机";
    }
}

3、定义一个工厂类

package com.asurplus.common.factory;
/**
 * 手机工厂类
 */
public class PhoneFactory {
    /**
     * 获取手机
     *
     * @param name
     * @return
     */
    public static Phone getPhone(String name) {
        if ("华为".equals(name)) {
            return new HuaweiPhone();
        }
        if ("小米".equals(name)) {
            return new XiaomiPhone();
        }
        return null;
    }
}

二、测试

package com.asurplus.common.factory;
/**
 * 工厂模式
 */
public class TestMain {
    public static void main(String[] args) {
        // 获取手机
        Phone huaweiPhone = PhoneFactory.getPhone("华为");
        System.out.println(huaweiPhone.getPhone());
    }
}

输出结果

Java工厂模式实例分析

我们输入的:华为,得到了华为手机,从而实现了我们的工厂模式。

以上就是“Java工厂模式实例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

推荐阅读:
  1. java的工厂模式
  2. java中什么是工厂模式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Matlab怎么绘制散点密度图

下一篇:Java中单例模式怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》