The factory pattern is a creational pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.
The observer pattern is a behavioural pattern. A one-to-many relationship between objects is created so that when the state of one object changes all its children objects are notified and updated automatically.