《大话设计模式》 读书笔记(二)

《大话设计模式》 读书笔记(二)
1. 策略模式
策略模式:定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。

简单工厂模式只是封装了多态第一步(产生子类)的代码。
策略模式则直接产生子类,然后去选择调用的算法。也可以在简单工厂的基础上继续工作,用子类来调用相应的算法。(这就不是纯粹的策略,而是简单工厂+策略)
简单工厂需要返回子类对象,而策略模式可以返回也可以不返回。(反正工作做完了)。

在简单工厂模式中我们只需要传递相应的条件就能得到想要的一个对象,然后在客户端通过这个对象实现算法的操作。(所以算法没有封好)
而策略模式,使用时必须首先创建一个想使用的类对象,然后将该对象最为参数传递进去,通过该对象调用不同的算法。(算法完全被封好了)
在简单工厂模式中实现了通过条件选取一个类去实例化对象,策略模式则将选取相应对象的工作交给模式的使用者,它本身不去做选取工作。


缺点:由于策略模式把每个具体的策略实现都单独封装成为类,如果备选的策略很多的话,那么对象的数目就会很可观。

你可能感兴趣的:(大话设计模式)