策略模式和简单工厂区别
两者的模式结构非常相似,工厂类如下:
策略类如下:
“工厂模式着重与对象创建,策略模式着重与策略多变”这个解说并不能清楚的对二者进行区别。
从结构数据传输看:
工厂模式采用的内部封装模式创建一个基类对象,调用者(客户端)不知道工厂是怎么创建出的对象,比如说是直接创建,匿名创建,静态创建,单例创建,外部调用者是不知道的。
策略模式则是将策略类先定义好,包括类需要的属性信息,然后将策略类传入给策略封装者(context),将策略实施的方式进行了封装。客户端不知道策略是怎么实施