Page object model

Page object models are very popular pattern for creating test frameworks for web applications. In this model, Every page in the application is mapped to a class. Elements in the page are added as a members of the class. Methods in the class are used to perform operations on those members.

Page Factory Pattern

In Page factory design pattern, all elements of the page are initialised as soon as we create the instance of that class. So you do not need to use driver.findElement method every time you perform any operation on the element. This is similar to Page object model. Only difference is that in this pattern, all elements are auto-initialised.
Complex problems, Simple Solutions