设计模式之抽象工厂

实验结果

abstract_factory_result

测试命令

cd abstractfactory && go test -v

环境要求

go1.13+

接口设计

工厂接口

1
2
3
4
5
type IFactory interface {
	produceTV() ITV
	produceFreezer() IFreezer
	produceAirController() IAirController
}

产品接口

  • 1
    2
    3
    
    type ITV interface {
    	TVSay()
    }
    
  • 1
    2
    3
    
    type IFreezer interface {
    	FreezerSay()
    }
    
  • 1
    2
    3
    
    type IAirController interface {
    	AirControllerSay()
    }
    

接口实现

  • 创建HaierFactory, HisenseFactory,TCLFactory3个工厂结构体,每个工厂实现3个方法,分别返回对应的产品结构体

  • 创建[工厂名][产品名]9个产品结构体,每个产品实现对应接口的say方法

Built with Hugo
Theme Stack designed by Jimmy