java工厂模式(java工厂模式和策略模式)

设计模式是呗编程者总结出来的一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验。掌握几种常用的设计模式,对于Java应聘者来说十分重要,比如单例模式、工厂模式、建造者模式等等,接下来就来简单介绍一下这几种常见的设计模式和它们的应用场景。(想了解更多可以参考下面的视频教程)

黑马程序员Java设计模式详解,全网最全23种Java设计模式(图解+框架源码分析+实战):https://www.bilibili.com/video/BV1Np4y1z7BU

(1)考察目标

考官主要是对一些常用设计模式和代码抽取优化能力的考核,问题可能涉及6大设计原则及23种设计模式。

(2)题目分析

比较熟悉的有:

单例模式:

保证一个类仅有一个实例,并提供一个全局访问点,比如一些配置文件或者管理类可以设计为单例,我们常用的线程池也是单例的。

模板方法:

在定义好的算法骨架下,允许子类为一个或多个步骤提供实现,一次性实现算法的不变部分,将可变部分留给子类实现,当子类实现代码逻辑雷同时,可以使用此设计模式。

工厂模式:

创建对象需要大量的重复代码时,通过子类实现方法来创建对象。如Spring中通过工厂模式将创建对象的任务交给容器管理。

建造者模式:

讲复杂对象的构建和表示分离,适用于流程固定,但是顺序不一定固定的场景。如需要给一个对象多次给不同的属性赋值,可以使用链式调用传参,最后生成对象。

另外,如策略模式,观察者模式,模板方法模式,foreach中的迭代器模式,spring 中ASM的访问者模式,动态代理等都有一些了解。

(3)应用场景

JavaEE应用中,Spring用于创建IOC容器的监听器就是基于观察者模式的。Spring中获取FileSystemResource和ClassPathResource等功能雷同的类时使用模板方法。

单例模式:包含懒汉饿汉式以及不同的变种,工厂类设计模式一般也设计为单例。项目中的一些配置,或者引入外部的sdk需要创建管理类,或者封装自己的框架时,需要用到单例

工厂方法:在编码时不能预见需要创建哪种类的实例。

(4)总结

本题主要考察的是:

1)常用设计模式

2)代码抽取优化能力

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。