简介

简单工厂、工厂方法、抽象工厂、DI容器

简单工厂

由于Go本身没有构造函数,一般而言使用NewName的方式创建对象/接口,当它返回的是接口的时候,其实就是简单工厂模式

  1. type IRuleConfigParser interface {
  2. Parse(data []byte)
  3. }
  4. type jsonRuleConfigParser struct {
  5. }
  6. func (J jsonRuleConfigParser) Parse(data []byte) {
  7. panic("implement me")
  8. }
  9. type yamlRuleConfigParser struct {
  10. }
  11. func (Y yamlRuleConfigParser) Parse(data []byte) {
  12. panic("implement me")
  13. }
  14. //实现简单的工厂模式
  15. func NewIRuleConfigParser(t string) IRuleConfigParser {
  16. switch t {
  17. case "json":
  18. return jsonRuleConfigParser{}
  19. case "yaml":
  20. return yamlRuleConfigParser{}
  21. }
  22. return nil
  23. }
  24. func main() {
  25. NewIRuleConfigParser("json")
  26. }