Observer is a behavioral design pattern that lets you define a subscription mechanism to notify multiple objects about any events that happen to object they are observing.
The builder pattern is a creational design pattern that allows for the constitution of complex objects step by step, without exposing the internal representation of the object being built.
This pattern is especially useful in situations where the object being created has multiple optional parameters, as it allows for easy constitution of objects with different combinations of options.
