classDiagram
class AbstractFactory{
 -成员名
 -getBall() Sport
}
class BasketballFactory{
 -成员名
 -getBall() Sport
}
class FootballFactory{
 -成员名
 -getBall() Sport
}
class VolleyballFactory{
 -成员名
 -getBall() Sport
}
class Sport{
 -
 -play() void
 -printName() void
}
class Basketball{
 -
 -play() void
 -printName() void
}
class Football{
 -
 -play() void
 -printName() void
}
class Volleyball{
 -
 -play() void
 -printName() void
}
class Client{
 -成员名
 -成员名
}
Client ..> AbstractFactory
Client ..> Sport
AbstractFactory <|-- BasketballFactory
AbstractFactory <|-- FootballFactory
AbstractFactory <|-- VolleyballFactory
BasketballFactory ..> Basketball
FootballFactory ..> Football
VolleyballFactory ..> Volleyball
Sport <|-- Basketball
Sport <|-- Football
Sport <|-- Volleyball