设计模式:
软件开发过程中,遇到相似问题,将问题的解决方式抽取模型(套路)
单例,工厂,装饰者,适配器,动态代理
谷歌汽车场景:
谷歌汽车场景Car
设计了汽车开发阅读
- Interface Icar{ start run stop}
- final class GoogleCar implments ICar(){}
希望将谷歌Car接入到生态圈
装饰者设计模式
- 场景:二次开发的时候,无法获取源码GoogleCar,无法使用继承的情况下,要对已经存在的对象进行增强
- 前提:可以获取到被装饰的对象实现的所有接口
- 弊端:假如被装饰对象实现的接口有几百个方法,那么就要重写几百个方法,造成冗余
- 解决方法:动态代理
动态代理模式:
原理:通过虚拟机在内存中创建类似MyCar.class文件
1 要创建这个文件,要告诉虚拟机被创建的字节码文件上应该有多少方法
2 告诉虚拟机被创建的字节码上的方法如何来实现
。。。未完待续