zoukankan      html  css  js  c++  java
  • 转--简单工厂模式 Simple Factory

    简单工厂模式的作用就是定义一个用于创建对象的接口

    在简单工厂模式中,一个工厂类处于对产品类实例化调用的中心位置上,它决定那一个产品类应当被实例化。

            先来看看它的组成:

             1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。

             2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。

             3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。

    首先定义一个接口

    复制代码
    /**
     * @author ieasy360_1
     * 定义一个接口
     */
    public interface Sender{
        
        public void send();
    }
    复制代码

    创建类实现Sender接口

    复制代码
    public class Qq implements Sender{
    
        @Override
        public void send() {
            // TODO Auto-generated method stu
            System.out.println("this is qq send!"); 
        }
    }
    复制代码
    复制代码
    public class Weixin implements Sender {
    
        @Override
        public void send() {
            // TODO Auto-generated method stub
            System.out.println("this is Weixin send!"); 
        }
    }
    复制代码

    创建一个工厂类

    复制代码
    /**
     * @author ieasy360_1
     * 工厂类
     */
    public class SenderFactory {
    
        public Sender sendproduce(String type)
        {
            if(type.equals("qq"))
            {
                return new Qq();
            }
            else if(type.equals("wx"))
            {
                return new Weixin();
            }
            else
            {
                return null;
            }
        }
    }
    复制代码

    具体用法

    复制代码
    /**
     * @author ieasy360_1
     *
     */
    public class Test1 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            SenderFactory factory = new SenderFactory();
            Sender sender = factory.sendproduce("qq");
            sender.send();
        }
    }
    复制代码

    运行得到的结果

    this is qq send!
  • 相关阅读:
    三行代码实现邮件发送
    两种HTTP请求方法:GET和POST的区别
    测试自动化平台 | 测试开发工程师的进阶之路
    测试自动化平台 | 测试开发工程师的进阶之路
    Autotestplat.com 更新了!
    如何规范小开发公司的测试流程。?
    如何规范小开发公司的测试流程。?
    《自动化平台测试开发》出版啦!!!
    后缀数组
    bzoj 3864: Hero meet devil
  • 原文地址:https://www.cnblogs.com/awkflf11/p/4370536.html
Copyright © 2011-2022 走看看