singleton,flyweight,builder,prototype