设计模式系列之策略模式

一 策略模式的本质
策略模式的本质:策略模式 是一个接口多个实现类,而每种实现类会处理某一种情况
二 what
策略模式是一种行为模式,是将每一种算法封装到具有共同接口的独立类中,从而可以相互替换
三 Why
优点:
1.扩展性良好
2.避免使用多重条件判断,遵循开闭原则
3.算法可以自由切换
缺点:
1.策略会向外暴露
2.策略类会增多造成臃肿

Where:
1.一个系统需要在几种算法中动态地选择一种。
2.系统很多类,而区别仅仅在于行为不同。
How
抽象策略角色这个是一个抽象的角色,通常情况下使用接口或者抽象类去实现。对比来说,就是我们的Comparator接口。
具体策略角色包装了具体的算法和行为。对比来说,就是实现了Comparator接口的实现一组实现类。
环境角色内部会持有一个抽象角色的引用,给客户端调用。对比来说,就是我们的TreeSet类。说明:TreeSet内部一定会有一个策略类的一个成员变量,这样做的目的在于可以当我们在去创建TreeSet对象的时候,可以接收我们向TreeSet类中传递的具体的策略类。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结
策略模式遵循了开闭原则,增加新的类不需要修改原有的代码,只需实现接口或者继承抽象类;同时策略模式也遵循了里氏替换原则,具体的策略类都有相同的接口,只要在有父类出现的地方都可以使用子类替代

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章