策略模式

定义

将可变的部分封装为算法,独立于使用算法的客户端,算法之间可以相互替换而且不影响客户端的实现。

类图
策略模式_第1张图片
image.png

Hero 客户端类
Weapon 算法

设计原则
  • 封装变化(这里的变化指的是算法,Weapon),想象以下如果使用继承而不是组合会出现什么情况。
  • 针对接口编程,而不是实现编程
  • 多用组合,少用继承
源代码

https://github.com/baizhizhen/design-patterns

你可能感兴趣的:(策略模式)