策略模式
概念
- 策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法
- 比如每个人都要交“个人所得税”,但是在美国交个人所得税和在中国交个人所得税是有不同的算法,所以就要有不同的策略
- 策略模式是一种对象行为型模式
结构
代码示例
-
strategy.go
-
strategy_test.go
实战模拟
- 实现一个日志记录器:文件记录和数据库记录两种
-
logger.go
-
logger_test.go
策略模式总结
- 优点:对“开闭原则”的完美支持
- 缺点:客户端必须知道所有策略类,并自己决定使用哪一个策略类
- 适合场景:一个系统需要动态的在几种算法或行为中选择一种