1. Instantiation with a constructor
2. Instantiation with a static factory method
3. Instantiation using an instance factory method
1. Instantiation with a constructor
2. Instantiation with a static factory method
3. Instantiation using an instance factory method