Go不是一种面向对象的编程语言,但我们仍然可以在其中复制一些模式。在这个例子中,我们将看到策略设计模式的例子。策略设计模式的行为就像if ... else 和switch ... case 语句一样,所以你给它一些东西,它就知道到底该怎么做。
结构
internal/
文件
file.go
package cache
redis.go
package cache
session.go
package cache
strategy.go
这是所有策略的实现。
package cache
cache.go
这是我们在代码中互动的部分。
package cache
main.go
正如你所看到的,我们可以在不改变代码的情况下使用任何缓存机制。我们所要做的就是,选择一个缓存策略。这就是策略模式的全部意义所在。
package main
测试
Pushing [ key-f : value-f ] to file...