java设计模式-工厂模式

Posted 会说话的猫咪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java设计模式-工厂模式相关的知识,希望对你有一定的参考价值。

工厂模式种类

工厂模式可以分为三类:简单工厂模式,工厂方法模式以及抽象工厂模式。

简单工厂模式

简单工厂模式又称为静态工厂方法模式,为何称为静态工厂方法模式呢?是因为该模式主要由一个工厂类的静态方法来提供各种产品。

简单工厂模式的优点

这里假设有三个角色:消费者,生产者和产品。通过简单工厂模式消费者并不需要关心产品是如何生产出来的,也不需要关心产品制造的具体流程,只需要直接去生产者那里直接购买便可。这在一定程度上实现了生产者和产品之间的解耦,每个角色之间的分工变得更加明确。

简单工厂模式示例

 产品接口

public interface Phone {
    //产品类所继承的公共接口,也可以为抽象类
    public String getPhoneName();
}

 

产品

/**
 *  苹果生产商
 */
public class IPhone implements Phone {
    @Override
    public String getPhoneName() {
        return "我们生产苹果手机";
    }
}


/**
 *  vivo生产商
 */
public class VivoPhone implements Phone {
    @Override
    public String getPhoneName() {
        return "我们生产vivo手机";
    }
}

/**
 *  华为生产商
 */
public class HuaWeiPhone implements Phone {
    @Override
    public String getPhoneName() {
        return "我们生产华为手机";
    }
}

 

工厂

/**
 *  工厂负责生产各种手机,这里的生产可以理解为对象的创建
 */
public class Factory {

    //苹果手机
    private static final String APPLE = "apple";

    //vivo手机
    private static final String VIVO = "vivo";

    //华为手机
    private static final String HUAWEI = "huawei";

    //根据用户的选择来提供手机
    public static Phone create(String name)
    {
        switch (name)
        {
            case APPLE:
                return new IPhone();
            case VIVO:
                return  new VivoPhone();
            case HUAWEI:
                return new HuaWeiPhone();
            default:
                return null;
        }
    }
}

 

消费者(客户端)

/**
 *  消费者
 */
public class Customer {
    public static void main(String[] args)
    {
        //用户买个苹果手机
        Phone phone = Factory.create("apple");
        System.out.println(phone.getPhoneName());

        //用户买个华为手机
        Phone phone2 = Factory.create("huawei");
        System.out.println(phone2.getPhoneName());
    }
}

输出结果:

 

 

以上是关于java设计模式-工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

JAVA设计模式之工厂模式

java与模式,这段代码怎么反映简单工厂模式了?

java设计模式 GOF23 02 工厂模式

Java设计模式图文代码案例详解Java五大创建者模式 建造者原型(抽象)工厂单例模式

java设计模式--工厂模式

Java 工厂模式