Discuss how to avoid creating dependent objects manually in order to improve maintainability using dependency injection and abstraction. — Background You probably see the “new” keyword every day. In simple cases, e.g., creating instances for data transfer object (DTO) or plain old class object (POCO), it is perfectly good practice to use the “new” keyword. However, in classes where complex behaviour or state exists, using “new” keyword to manually initialize…