abstract_factory

demo
Revert "abstract_factory"

This reverts commit acb31e313951d9e8a8396dcbc9c683cca0456c4e.