create
ComponentC
+ ComponentC()+ validate()+ getData()+ ...
ComponentA
+ ComponentA()+ validate()+ getData()+ ...
NormalComponentFactory
+ createComponent(): Component+ ComponentFactory()
GuideComponentFactory
Client
MarketingComponentFactory
<abstract>Component
+ Component()+ validate()+ getData()+ ...
ComponentB
+ ComponentB()+ validate()+ getData()+ ...
<abstract>ComponentFactory