简单工厂模式--java实现

本文介绍了简单工厂模式,这是类的创建模式,常用于Spring框架。简单工厂模式通过一个工厂对象根据参数创建不同产品类的实例,降低了客户端与具体实现类的耦合。模式包含工厂类角色、抽象产品角色和具体产品角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天去京东终面,叫手写一下单例模式和简单工厂模式。当时学简单工厂模式是在spring的学习中,它是spring采用的主要设计模式,简单工厂模式是类的创建模式。

简单工厂模式是类的创建模式,又叫做静态工厂方法。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。通常它根据自变量的不同返回不同类的实例。

简单工厂模式的实质是由一个工厂类根据传入的参数,动态的决定应该创建出哪一个产品类的实例。
简单工厂模式的构成:‘
(1)工厂类角色: 是简单工厂模式的核心,工厂类在客户端的直接调用下创建产品对象,它往往由一个具体类实现。
(2)抽象产品角色:抽象产品角色由一个借口或者抽象类实现。
(3)具体产品角色:由一个具体类实现。

package com.test.simplefactory;

// 抽象产品角色.  抽象类或者接口

public interface Person
{
    public String sayHello(String name);

    public String sayGoodbye(String name);

}
package com.test.simplefactory;

// 具体产品角色1,需要实现接口
public class Chinese implements Person
{

    @Override
    public String sayHello(String name)
    {
        return name + "你好";
    }

    @Override
    public String sayGoodbye(String name)
    {
        return name + "再见";
    }

}
package com.test.simplefactory;

// 具体产品角色2
public class American implements Person
{

    @Override
    public String sayHello(String name)
    {
        return name + ",hello";
    }

    @Override
    public String sayGoodbye(String name)
    {
        return name + ",goodbye";
    }

}
package com.test.simplefactory;

// 工厂类,作用就是用来生成对象

public class PersonFactory
{
    // 作用是用来生成对象的,所以返回值肯定也是Person类型
    public Person getPerson(String name)
    {
        if ("chinese".equals(name))
        {
            return new Chinese();
        } else if ("american".equals(name))
        {
            return new American();
        } else
        {
            return null;
        }
    }
}

这样,客户端与具体的实现类(Chinese ,American)已经没有强耦合的关系了。我们的请求是像工厂发出的,我们需要的产品也是工厂帮助我们生成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值