策略模式
某些对象使用的算法可能多种多样还可能随时改变,如果将这些算法全部写在对象中将会使对象非常复杂,并且算法还要扩展,不使用的算法也成为性能负担。
解决思路
这时需要将对象与其算法分隔开,变化点在于算法,那么就封装算法,把稳定的部分抽象提取出来,把不稳定的算法部分留下可扩展的入口。
典型实例
一个应用的订单中要计算不同国家的税金,前期可能只有三两个国家,后期可能扩展到很多国家。
图片引用自李建忠老师的视频教学《C++设计模式》
策略模式
某些对象使用的算法可能多种多样还可能随时改变,如果将这些算法全部写在对象中将会使对象非常复杂,并且算法还要扩展,不使用的算法也成为性能负担。
解决思路
这时需要将对象与其算法分隔开,变化点在于算法,那么就封装算法,把稳定的部分抽象提取出来,把不稳定的算法部分留下可扩展的入口。
典型实例
一个应用的订单中要计算不同国家的税金,前期可能只有三两个国家,后期可能扩展到很多国家。
图片引用自李建忠老师的视频教学《C++设计模式》