简单工厂模式 :要知道参数
工厂方法模式:要知道工厂方法
package initial2
type Cache interface {
Set (key string,value string)
Get(key string) string
}
type Redis struct{
RedisValue map[string]string
}
func(this *Redis)Set(key string,value string){
this.RedisValue=make(map[string]string)
this.RedisValue[key]=value
}
func (this *Redis)Get(key string)string{
return this.RedisValue[key]
}
//todo 不过这里面如果是interface 要该怎么做呢
//memCache
type MemCache struct{
RedisValue map[string]string
}
func(this *MemCache)Set(key string,value string){
this.RedisValue=make(map[string]string)
this.RedisValue[key]=value
}
func (this *MemCache)Get(key string)string{
return this.RedisValue[key]
}
type RedisFactory struct{
}
func (this *RedisFactory)DoRedisFactory()Cache{
return &Redis{}
}
type MemCacheFactory struct{
}
func (this *MemCacheFactory)DoMemCacheFactory()Cache{
return &MemCache{}
}

测试案例:
func TestFactoryParternImplement(t *testing.T){
redisFactory :=initial2.RedisFactory{}
redisStruct:=redisFactory.DoRedisFactory()
redisStruct.Set("yuwei","bangbangda")
fmt.Println(redisStruct.Get("yuwei"))
}
