立即学习:https://edu.csdn.net/course/play/27126/355510?utm_source=blogtoedu
单例模式
单例模式的单线程实现方式
- 通过单例模式,确保实例化的对象只有一个
- 构造函数私有,通过静态方法对外提供对象
单例模式的多线程实现方式(可以改进)
- synchronize代码块里写new代码,在同一个时间段里只能被一个线程调用
- 其他线程会先排队等待进入Synchronized代码块,然后发现无法创建对象。
单例模式的多线程实现方式(双重检查)
- 其它对象发现还可以创建对象,才等待进Synchronized代码块,这种时候丝线方式还有待提升,但足以在面试中展示。
代理模式
举例
需求:客户从代理商这里取车,而代理商从厂商那车,客户看不到厂商
- 角色1:厂商类提供sellCar方法,但客户不能直接调用。
- 角色2:代理商提供sellCar 方法供客户调用,代理商的sellCar方法其实是通过调用厂商方法实现的。
- 客户买车时,调用的是代理商提供的方法
- 能降低业务使用和业务提供者煎的耦合程度
- 如果无法直接调用某服务,可以考虑用代理模式
设计模式的亮点说辞
- 其实使用设计模式的根本原因是提升项目的可维护性
- 除了用到设计模式之外,我们还会尽量注意设计模式背后蕴含的思想,比如开闭原则等
- 设计模式不仅能给出具体的解决方案。还能提供优化系统架构的思路,所以在项目里,我们一般不会只用其中某个,二会根据一些原则来优化我们的代码,比如经常会用到解耦合和面向接口编程的原则
- 在项目里,不是为了好看才用到设计模式,而是为了解决特定类型的实际问题,从这意义商将,我们更会关心设计模式背后的原则则思想。