标签:方法 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