Documentation
¶
Overview ¶
Package abstract_factory is an example of the Abstract Factory Pattern.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AbstractBottle ¶
type AbstractBottle interface {
PourWater(water AbstractWater) // Bottle interacts with a water.
GetBottleVolume() float64
GetWaterVolume() float64
}
AbstractBottle provides a bottle interface.
type AbstractFactory ¶
type AbstractFactory interface {
CreateWater(volume float64) AbstractWater
CreateBottle(volume float64) AbstractBottle
}
AbstractFactory provides an interface for creating families of related objects.
func NewCocaColaFactory ¶
func NewCocaColaFactory() AbstractFactory
NewCocaColaFactory is the CocaColaFactory constructor.
type AbstractWater ¶
type AbstractWater interface {
GetVolume() float64
}
AbstractWater provides a water interface.
type CocaColaBottle ¶
type CocaColaBottle struct {
// contains filtered or unexported fields
}
CocaColaBottle implements AbstractBottle.
func (*CocaColaBottle) GetBottleVolume ¶
func (b *CocaColaBottle) GetBottleVolume() float64
GetBottleVolume returns volume of bottle.
func (*CocaColaBottle) GetWaterVolume ¶
func (b *CocaColaBottle) GetWaterVolume() float64
GetWaterVolume returns volume of water.
func (*CocaColaBottle) PourWater ¶
func (b *CocaColaBottle) PourWater(water AbstractWater)
PourWater pours water into a bottle.
type CocaColaFactory ¶
type CocaColaFactory struct {
}
CocaColaFactory implements AbstractFactory interface.
func (*CocaColaFactory) CreateBottle ¶
func (f *CocaColaFactory) CreateBottle(volume float64) AbstractBottle
CreateBottle implementation.
func (*CocaColaFactory) CreateWater ¶
func (f *CocaColaFactory) CreateWater(volume float64) AbstractWater
CreateWater implementation.
type CocaColaWater ¶
type CocaColaWater struct {
// contains filtered or unexported fields
}
CocaColaWater implements AbstractWater.
func (*CocaColaWater) GetVolume ¶
func (w *CocaColaWater) GetVolume() float64
GetVolume returns volume of drink.