java23中设计模式之工厂模式

来源:互联网 发布:淘宝联盟 易语言源码 编辑:程序博客网 时间:2024/06/08 19:07

参考

工厂模式分为三种:
1、简单工厂模式,就是创建一个工厂类,对实现了同一接口的一些类进行实例的创建。
2、多个工厂模式,就是在普通工厂方法中,若传递的字符串出错,则不能创建对象,而多个工厂模式就是提供多个工厂方法分别创建对象。
3、静态工厂模式,将多个工厂模式里的方法设置为静态的,不需要创建实例直接调用即可。
概述:
凡是出现大量的产品需要创建并且具有共同的接口时,可由工厂方法创建。

代码描述:(以发送邮件和发送短信为类)

实现接口:

package com.design.model.factorymodel;public interface Send{    public void send();}

邮件发送类:

package com.design.model.factorymodel;public class MailSend implements Send{    @Override    public void send()    {        System.out.println("MailSender");    }}

短信发送类:

package com.design.model.factorymodel;public class SmsSend implements Send{    @Override    public void send()    {        System.out.println("sms send");    }}

工厂类创建:

package com.design.model.factorymodel;public class SendFactory{    //单个工厂模式    public Send producer(String type){        if(type.equals("mail")){            return new MailSend();  //创建实例        }else if (type.equals("sms")) {            return new SmsSend();   //创建实例        }else {            return null;    //字符串不同时,不能创建对象        }    }    //多个工厂模式    public Send produceMail(){        return new MailSend();    }    public Send produceSms(){        return new SmsSend();    }    //静态工厂模式    public static Send sproduceMail(){        return new MailSend();    }    public static Send sproduceSms(){        return new SmsSend();    }}

测试样例:

package com.design.model.factorymodel;public class FactoryTest{    public static void main(String[] args)    {        //简单工厂测试        SendFactory sendFactory = new SendFactory();        Send send = sendFactory.producer("mail");        send.send();        //多个工厂测试        SendFactory sendFactorymore = new SendFactory();        sendFactorymore.produceMail().send();        //静态工厂测试        SendFactory.sproduceMail().send();    }}

运行结果:

MailSenderMailSenderMailSender

后续说明:待补~

0 0