Java高级:设计模式

  • 创建型模式

  • 结构型模式

  • 行为型模式

工厂模式


  • 工厂模式用于隐藏创建对象的细节;

  • 工厂模式核心:工厂类(Fcatory);

  • 工厂模式可细分为简单工厂、工厂方法与抽象工厂;

面向接口编程,隐藏具体类实现的细节

简单工厂

原始的设计模式,客户类要了解每一个类的具体功能

Java高级:设计模式

简单工厂设计模式,对原始的具体类抽象出来一个具体的接口,根据客户的要求,由工厂类创建对应的实现类,客户类不再面向实现类,而是持有一个抽象接口,工厂类返回的时候也是返回这个接口,所有客户不需要关注工厂类创建了哪个具体类,只需要知道工厂类返回某一个接口就可以。

Java高级:设计模式

项目应用-i18n国际化

3个语言测试类:

Chinese.java


package factory.i18n;



public class Chinese implements I18N{

    public String getTitle(){

        return "简体中文:人事管理系统";

    }

} 

Italian.java


package factory.i18n;



public class Italian implements I18N {

    public String getTitle(){

        return "意大利语";

    }

} 

Spainish.java


package factory.i18n;



public class Spainish implements I18N {

    public String getTitle(){

        return "西班牙语";

    }

} 

现在要调用哪个语言类,必须实现那个类,使用简单工厂模式可以不用关心这个问题,创建一个包含语言通用方法的国际化接口:

I18N.java


package factory.i18n;



//Internationalization

public interface I18N {

    public String getTitle();

} 

I18NFactory.java 接口的国际化工厂类


package factory.i18n;



public class I18NFactory {

    //静态工厂

    public static I18N getI18NObject(String area) {

        if (area.equals("china")) {

            return new Chinese();

        } else if (area.equals("spain")) {

            return new Spainish();

        } else if (area.equals("italy")) {

            return new Italian();

        } else {

            return null;

        }



    }

} 

在调用的时候只需要引用这个接口,而不需要关心具体哪个类去实现:

Software.java




# 总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。

面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!如果你需要这份完整版的**面试真题笔记**,只需你多多**支持**我这篇文章。

**[资料领取方式:戳这里免费下载](https://gitee.com/vip204888/java-p7)**

不努力,差距也只会越来越大。

面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!如果你需要这份完整版的**面试真题笔记**,只需你多多**支持**我这篇文章。

**[资料领取方式:戳这里免费下载](https://gitee.com/vip204888/java-p7)**

![](https://www.icode9.com/i/ll/?i=img_convert/88f9e118b966487139ca61fa52469025.png)
上一篇:vue实现国际化(i18n)


下一篇:Vue使用vue-i18n实现国际化