BAEL-5768 - Coupling in Java (#11) (#12881)

* BAEL-5768 - Coupling in Java (#11)

* BAEL-5768 - Coupling in Java
This commit is contained in:
alemoles
2022-10-18 00:24:12 -03:00
committed by GitHub
parent b522237512
commit 16c5169c86
16 changed files with 255 additions and 0 deletions
@@ -0,0 +1,14 @@
package com.baeldung.loose;
import java.io.File;
import java.util.List;
public class CSVExport implements ExportMetadata {
@Override
public File export(List<Object> metadata) {
System.out.println("Exporting data...");
// Export Metadata
File outputCSV = null;
return outputCSV;
}
}
@@ -0,0 +1,8 @@
package com.baeldung.loose;
import java.io.File;
import java.util.List;
public interface ExportMetadata {
File export(List<Object> metadata);
}
@@ -0,0 +1,7 @@
package com.baeldung.loose;
import java.util.List;
public interface FetchMetadata {
List<Object> fetchMetadata();
}
@@ -0,0 +1,12 @@
package com.baeldung.loose;
import java.util.ArrayList;
import java.util.List;
public class JSONFetch implements FetchMetadata{
@Override
public List<Object> fetchMetadata() {
System.out.println("Fetching some json data");
return new ArrayList<>();
}
}
@@ -0,0 +1,26 @@
package com.baeldung.loose;
import java.util.List;
public class MetadataCollector {
private final FetchMetadata fetchMetadata;
private final ExportMetadata exportMetadata;
public MetadataCollector(FetchMetadata fetchMetadata, ExportMetadata exportMetadata) {
this.fetchMetadata = fetchMetadata;
this.exportMetadata = exportMetadata;
}
public void collectMetadata() {
List<Object> metadata = fetchMetadata.fetchMetadata();
exportMetadata.export(metadata);
}
public FetchMetadata getFetchMetadata() {
return fetchMetadata;
}
public ExportMetadata getExportMetadata() {
return exportMetadata;
}
}
@@ -0,0 +1,14 @@
package com.baeldung.loose;
import java.io.File;
import java.util.List;
public class PDFExport implements ExportMetadata {
@Override
public File export(List<Object> metadata) {
System.out.println("PDF Export");
// Some logic
File outputPDF = null;
return outputPDF;
}
}
@@ -0,0 +1,13 @@
package com.baeldung.loose;
import java.util.ArrayList;
import java.util.List;
public class XMLFetch implements FetchMetadata {
@Override
public List<Object> fetchMetadata() {
List<Object> metadata = new ArrayList<>();
// Do some stuff
return metadata;
}
}
@@ -0,0 +1,14 @@
package com.baeldung.tight;
import java.io.File;
import java.util.List;
public class CSVExport {
public File export(List<Object> metadata) {
System.out.println("Exporting data...");
// Export Metadata
File outputCSV = null;
return outputCSV;
}
}
@@ -0,0 +1,12 @@
package com.baeldung.tight;
import java.util.ArrayList;
import java.util.List;
public class JSONFetch {
public List<Object> fetchMetadata() {
List<Object> metadata = new ArrayList<>();
// Do some stuff
return metadata;
}
}
@@ -0,0 +1,35 @@
package com.baeldung.tight;
import java.util.List;
public class MetadataCollector {
private XMLFetch xmlFetch = new XMLFetch();
private JSONFetch jsonFetch = new JSONFetch();
private CSVExport csvExport = new CSVExport();
private PDFExport pdfExport = new PDFExport();
public void collectMetadata() {
List<Object> metadata = xmlFetch.fetchMetadata();
csvExport.export(metadata);
}
public void collectMetadata(int inputType, int outputType) {
if (outputType == 1) {
List<Object> metadata = null;
if (inputType == 1) {
metadata = xmlFetch.fetchMetadata();
} else {
metadata = jsonFetch.fetchMetadata();
}
csvExport.export(metadata);
} else {
List<Object> metadata = null;
if (inputType == 1) {
metadata = xmlFetch.fetchMetadata();
} else {
metadata = jsonFetch.fetchMetadata();
}
pdfExport.export(metadata);
}
}
}
@@ -0,0 +1,13 @@
package com.baeldung.tight;
import java.io.File;
import java.util.List;
public class PDFExport {
public File export(List<Object> metadata) {
System.out.println("Exporting data...");
// Export Metadata
File outputPDF = null;
return outputPDF;
}
}
@@ -0,0 +1,12 @@
package com.baeldung.tight;
import java.util.ArrayList;
import java.util.List;
public class XMLFetch {
public List<Object> fetchMetadata() {
List<Object> metadata = new ArrayList<>();
// Do some stuff
return metadata;
}
}