JavaEE-面试-说说设计模式

设计模式

1,设计模式,在面试的时候可能被问到,一般出现在面试的前几个问题,同学们还是能够回答,但是想要回答的更好,这篇文章给你一些参考。

2,很多设计模式我们没有实际的编写经验,但是哪些设计模式在哪些类中哪些框架中被用到,能说出来给人感觉很好。

3,具体设计模式的代码,我这里就没有去贴出来了。

设计模式常见问题

1、 说说你所知道的设计模式。

2、 说说常见的设计模式。

3、 写一个单例。

4、 写一个动态代理。

设计模式的回答思路

一共有23种设计模式,同学们也不可能记住所有的设计模式,而且很多设计模式确实也少用。所以,只需要记住几个常用的,并且和实际框架情况结合起来更好。

常用设计模式

单例(singleInstance)、工厂方法(factory method)、抽象工厂模式(Abstract Factory)、代理(proxy)、装饰(decorator)、建造者(builder)、观察者(observer)、门面(facade)。

面试的时候能说出这几个,够用了。

单例(singleInstance)

饿汉式、懒汉式、双重检查加锁

不要只是知道饿汉式和懒汉式奥。

工厂(factory method)

简单工厂、多方法工厂方法、静态工厂

工厂模式就非常常见了

抽象工厂(abstract factory)

抽象工厂模式,虽然代码多了,但是符合开闭原则。

代理(proxy)

静态代理

动态代理

Spring AOP的底层实现动态代理。

装饰(decorator)

不用继承一个类可以对一个类的方法增强,容易和静态代理设计模式混淆。

java IO的很多类都是用到了装饰设计模式,比如典型的就是BufferedReader,BufferedReader是FileReader方法增强版本,将FileReader进行了装饰。

BufferedReaderbufReader = new BufferedReader(newFileReader(“xxx”));

建造者(builder)

对创建过程的封装。

StringBuilder就是一个例子。通过不停的调用apend方法最后调用build方法。

观察者(observer)

发布-订阅

一对多的通知方案。

activeMq有发布订阅的概念,也有一方发起通知,多方收到结果的感觉。

门面(facade)

封装细节,只需关心核心即可。

SecurityManager是Shiro架构的心脏,典型的Façade模式。

参考资料

以下的资料,经过我的刷选,质量还是挺高的,可以参考阅读。

23种设计模式汇总整理

Java设计模式之代理模式与装饰模式实例详解

Android设计模式之23种设计模式一览

从BufferedReader到装饰设计模式

静态代理和动态代理的理解

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值