学习笔记(10):Java面试Offer直通车-在面试中,让设计模式真正帮助到你

立即学习:https://edu.csdn.net/course/play/27126/355510?utm_source=blogtoedu

单例模式

单例模式的单线程实现方式

  1. 通过单例模式,确保实例化的对象只有一个
  2. 构造函数私有,通过静态方法对外提供对象 

单例模式的多线程实现方式(可以改进)

  1. synchronize代码块里写new代码,在同一个时间段里只能被一个线程调用
  2. 其他线程会先排队等待进入Synchronized代码块,然后发现无法创建对象。

单例模式的多线程实现方式(双重检查) 

  1. 其它对象发现还可以创建对象,才等待进Synchronized代码块,这种时候丝线方式还有待提升,但足以在面试中展示。

代理模式

举例

需求:客户从代理商这里取车,而代理商从厂商那车,客户看不到厂商

  1. 角色1:厂商类提供sellCar方法,但客户不能直接调用。
  2. 角色2:代理商提供sellCar 方法供客户调用,代理商的sellCar方法其实是通过调用厂商方法实现的。 
  3. 客户买车时,调用的是代理商提供的方法
  4. 能降低业务使用和业务提供者煎的耦合程度
  5. 如果无法直接调用某服务,可以考虑用代理模式

设计模式的亮点说辞

  1. 其实使用设计模式的根本原因是提升项目的可维护性
  2. 除了用到设计模式之外,我们还会尽量注意设计模式背后蕴含的思想,比如开闭原则等
  3. 设计模式不仅能给出具体的解决方案。还能提供优化系统架构的思路,所以在项目里,我们一般不会只用其中某个,二会根据一些原则来优化我们的代码,比如经常会用到解耦合和面向接口编程的原则
  4. 在项目里,不是为了好看才用到设计模式,而是为了解决特定类型的实际问题,从这意义商将,我们更会关心设计模式背后的原则则思想。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值