设计模式之面试官和你

面试官:你都知道哪些设计模式

你:单例,工厂,代理,观察者模式,适配器模式

 

面试官:如果让你按 创建型 结构型 行为型 分类下,你会怎么分?

你:创建型

单例,工厂,原型,构建器(Elasticsearch,query)

结构型

代理,外观,组合,适配器,装饰器(IO,构造函数以相同的抽象类或者接口为参数),桥接,享元

行为型

观察者,策略,解释器,命令,迭代器,模版方法,访问者

 

面试官:举几个java里使用设计模式的例子?

你:IO 的inputstream就是用的装饰器模式,JDK的HTTP2 HttpRequest就是用的构建器模式。

 

面试官:说说单例模式的思路?

你:单例(私有无参构造函数,分懒汉和饿汉型)

懒汉(调用对象方法再初始化,改善初始内存)饿汉(类加载时就实例化对象)

 

面试官:说说线程安全的单例模式的思路?

你:1. 懒汉+volatile 实例+类级锁+双null检查。2.私有内部静态类,通过初始化过程中的隐含的初始化锁实现。

 

面试官:你说你掌握了Spring,Spring里用了哪些设计模式?

你:BeanFactory,ApplicationContext 工厂模式,Bean有单例和原型模式,AOP使用了代理模式,装饰器模式,适配器模式等。事件监听是观察者模式。各种Template类使用了模板模式。

 

面试官:Facade外观模式是用来干嘛的?

你:用来屏蔽原系统的实现,提供更加简单的调用方式,但是修改的时候必须修改原系统,违反了开闭原则。

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值