Abstract Factory Shop(client)