策略模式的应用场景
策略模式的主要目的是将行为与具体的算法或者实现进行分开。如:条条大路通罗马。采取不同的路线或者出行方式虽然会出现不同的算法或实现,但是其最终行为都是去往罗马。其基本实现如下:
// 声明使用的算法接口,不同的算法通过实现此接口。
type Transportation interface {
Use()
}
type Plane struct {
}
func (u *Plane) Use() {
fmt.Println("use plane")
}
type Train struct {
}
func (u *Train) Use() {
fmt.Println("use train")
}
type Rome struct {
}
func (r *Rome) GoRome(u Transportation) {
u.UseWhat(

策略模式主要用于分离行为和算法,通过实例化不同的策略类来实现具体功能,避免了大量的if-else语句,遵循开闭原则。例如,在一个场景中,根据不同日子选择不同交通工具,策略模式能方便地添加新的交通策略,只需扩展策略接口的实现,而无需改动原有代码,降低了维护成本。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



