In object-oriented Programming Languages, a factory is a Design Pattern in which a class exists to create other objects.

Simple example of a factory in Python:

class SimpleFactory(object):
        @staticmethod # This decorator allows to run method without
        # class instance, .e. SimpleFactory.build_connection
        def build_connection(protocol):
            if protocol == 'http':
                return HTTPConnection()
            elif protocol == 'ftp':
                return FTPConnection()
            else:
                raise RuntimeError('Unknown protocol')
    
    if __name__ == '__main__':
        protocol = raw_input('Which Protocol to use? (http or ftp): ')
        protocol = SimpleFactory.build_connection(protocol)
        protocol.connect()
        print protocol.get_response()

The above code in Class Diagram form:

classDiagram
  class Connection{<<abstract>>}
  
  SimpleFactory : Connection build_connection(type)
  
  Client o-- SimpleFactory
  Client o-- Connection
  
  HTTPConnection <|-- Connection
  FTPConnection <|-- Connection