构建者模式,工厂模式,代理模式
1:工厂模式
使用者忽略中间过程,向工厂申请实例
代码:工厂
应用场景:买车的时候,只需要向工厂说,我想要一辆宝马,还是奔驰,我就可以得到我想要的车,至于是如何组装起来的(比如宝马车使用setBMWEngine()装了个宝马引擎,这类细节都不关心,只关心我最后得到的东西)
特点:就像工厂中一样,一旦生产线确定后,就可以快速方便的获得对象,但是想要修改生产线和进行添加新的产品对需要进行重新修改
2:构建者模式
代码: 建造者:创建和提供实例,导演:管理建造出来的实例的依赖关系。
应用场景:构建者模式更注重对重小型的对象的组合成一个新的对象。还是以买车(假设车只由引擎和轮子组成)为例,我想要一辆跑车,车厂(导演)会采用比如保时捷的引擎+特质的轮胎,进行组合,我要面包车,就由qq的轮子+五菱的引擎进行组合。
特点:建造者模式更加关注与零件装配的顺序。
3:代理模式
- 抽象角色:为真实对象和代理对象提供一个共同的接口,一般是抽象类或者接口。
- 代理角色:代理角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能够代替真实对象。同时,代理对象可以在执行真实对象的操作时,附加其他操作,相当于对真实对象的功能进行拓展。
- 真实角色:最终引用的对象。