2017-1-21
装饰者模式:
装饰者模式,通过递归调用上一层(所有层级继承同一个超类,递归调用方法相同)。
咖啡的例子
使用场景:
1、不修改原有类的基础上,新增功能。(比继承更优秀,避免类爆炸)
2、基本的功能或修饰经常变化或多重叠加。
可以用在权限、职务等上面。
工厂模式:
利用工厂模式来创建类,避免使用new,解耦。
工厂方法模式:
定义了一个创建对象的接口,由子类决定实例化的类是哪一个。工厂方法吧类的实例推迟到子类。
超类定义一个抽象的工厂方法,由子类去决定具体的创建过程。
超类中通过父类的使用,解耦具体创建的子类。
区别
简单工厂类:将创建封装起来。
工厂方法类:建立一个框架
依赖关系:
如果直接实例化一个类,就是在依赖他的具体类。
依赖倒置关系:
抽象工厂模式提供了一个借口,用于创建相关或者依赖对象的家族,而不需要明确指定具体类。
工厂方法模式,是通过继承一个有抽象创建方法的类,将创建延迟到子类去实现。
抽象工厂模式,是将一堆相关或者依赖的类,聚集起来,统一管理实现。(利用接口)