码迷,mamicode.com
首页 > 其他好文 > 详细

工厂模式

时间:2020-04-24 09:16:57      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:方法   stat   实现类   自己   phone   static   class   创建   rand   

简介  

  工厂模式是一种常见的设计模式,该模式属于创建型模式,它提供了一种简单,快速,高效而安全地创建对象的方式。工厂模式在接口中定义了创建对象的方法,而将具体的创建对象的过程在子类中实现,用户只需要通过接口创建需要的对象即可,不用关注对象的具体创建过程。同时,不同的子类可根据需求灵活实现创建对象的不同方法。

  以创建手机为例,假设手机的品牌有华为和苹果两种类型,我们要实现的是根据不同的传入参数实例化不同的手机。

具体实现

  1.定义接口

public interface Phone {
    void brand();
}

  以上代码定义了一个Phone接口,并在接口中定义brand(),用来输出手机的品牌。

  2.定义实现类

public class Iphone implements Phone {
    @Override
    public void brand() {
        System.out.println("this is a Apple phone");
    }
}
public class HuaWei implements Phone {
    @Override
    public void brand() {
        System.out.println("this is a huawei phone");
    }
}

  以上代码定义了两个Phone的实现类,两个品牌的手机通过brand()打印自己的品牌。

  3.定义工厂类

public class Factory {
    public Phone createPhone(String phoneName){
        if("Apple".equals(phoneName)){
            return new Iphone();
        }else if("HuaWei".equals(phoneName)){
            return new HuaWei();
        }else{
            return null;
        }
    }
}

  以上代码定义了工厂类Factory,工厂类有一个方法createFactory(),用来根据不同的参数实例化不同的手机并返回,调用者不知道实例化的内部细节。

  4.使用工厂模式

public static void main(String[] args) {
    Factory factory = new Factory();
    Phone huawei = factory.createPhone("HuaWei");
    Phone iphone = factory.createPhone("Apple");
    huawei.brand();
    iphone.brand();
}

  结果输出如下

this is a huawei phone
this is a Apple phone

  

工厂模式

标签:方法   stat   实现类   自己   phone   static   class   创建   rand   

原文地址:https://www.cnblogs.com/silentteller/p/12764943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!