factory_method.go 599 B

123456789101112131415161718192021222324252627282930313233343536
  1. package Factory_Method
  2. import "fmt"
  3. //工厂方法
  4. type AbstractProduct interface {
  5. Introduce(name string)
  6. }
  7. type AbstractFactory interface {
  8. Create()AbstractProduct
  9. }
  10. type ProductOne struct {
  11. Name string
  12. }
  13. func (*ProductOne)Introduce(name string){
  14. fmt.Printf("This is %s \n",name)
  15. }
  16. type ProductTwo struct {
  17. Name string
  18. }
  19. func (*ProductTwo)Introduce(name string){
  20. fmt.Printf("This is %s \n",name)
  21. }
  22. type FactoryOne struct {}
  23. func (*FactoryOne)Create()AbstractProduct{
  24. return &ProductOne{}
  25. }
  26. type FactoryTwo struct {}
  27. func (*FactoryTwo)Create()AbstractProduct{
  28. return &ProductTwo{}
  29. }