@startuml
Class Creator {
  +virtual Product * createProduct(int type) = 0;
  -Prod *factoryMethod(int type);
}

Class CreatorA {

  -Product * createProduct(int type);
}

Class Product {

  +void operation();
  +void operation2();
}

Creator ..|> CreatorA

Product -- CreatorA

@enduml
