factory method _
flyweight
memento 1.0