工厂模式和策略模式的比较
总结
工厂模式可以做到的事情,策略模式都可以做到。策略模式可以做到的事情,工厂模式也可以做到,只是会变得麻烦
工厂模式 有个工厂类,策略模式有个策略上下文
工厂模式属于创建型模式, 关注对象创建,根据用户选择的条件创建对象,强调对象的异同
策略模式属于行为型模式,关注行为选择,根据用户选择的策略,然后根据该策略做事,强调算法和实现的异同,策略可以任意替换
简单工厂
优点:只选择条件,不负责对象创建
缺点:如果新增条件,需要修改工厂类。
策略模式
优点:选择交给客户端,服务端只需要执行策略,有新需求,只是修改客户端,
缺点:需要客户端承担创建对象的职责
![简单工厂](https://i-blog.csdnimg.cn/blog_migrate/35567fb35583f2563f990e3ce90a25bd.png#pic_center)
![策略模式](https://i-blog.csdnimg.cn/blog_migrate/657f23121d8c563e0614d9f89a4a08d3.png#pic_center)