Question: Below are some Java classes that are tightly coupled. Rewrite them in another way so that you: - decouple the customer repository from any external
Below are some Java classes that are tightly coupled.
Rewrite them in another way so that you:
- decouple the customer repository from any external dependency
- be able to change the logger at runtime
class CustomerRepository { private Database database; private Logger logger; public CustomerRepository(Database database) { this.database = database; this.logger = new Logger(); } public void Add(String CustomerName) { database.AddRow("Customer", CustomerName); } } class Database { public void AddRow(String Table, String Value) { //connect to DB and insert row } } class Logger { private FileWriter fileWriter; public Logger(){ //initiate fileWriter } public void Log(String logType, String message) { try { fileWriter.write(logType + ": " + message); } catch (IOException e) { e.printStackTrace(); } } } Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
