package com.trifulcas.ejerciciosSolid; public class Article { private String Title; private String Content; public void setTitle(String title) { this.Title = title; } public void setContent(String content) { this.Content = content; } } package com.trifulcas.ejerciciosSolid; public class GenerateSummary { public String generateSummary(String content) { // Logic to generate a summary from the content return content.substring(0, 100) + "..."; // just a simple example } } package com.trifulcas.ejerciciosSolid; import com.trifulcas.juego.Enemigo; public class SaveToDatabase { // Cosas del tipo conexión a BD // etc... public void saveToDatabase(Article article) { // Logic to save the article to a database } public void saveToDatabase(Enemigo enemigo) { // Logic to save the article to a database } } package com.trifulcas.ejerciciosSolid; public abstract class ReportGenerator { public abstract void generateReport(String data); } package com.trifulcas.ejerciciosSolid; public class ReportGeneratorPDF extends ReportGenerator { @Override public void generateReport(String data) { System.out.println("Aquí va el código de generar PDF"); } } package com.trifulcas.ejerciciosSolid; public class ReportGeneratorCSV extends ReportGenerator { @Override public void generateReport(String data) { System.out.println("Código para generar CSV"); } } package com.trifulcas.ejerciciosSolid; public interface IReportGenerator { public void generateReport(String data); } package com.trifulcas.ejerciciosSolid; public class ReportGeneratorXML implements IReportGenerator { @Override public void generateReport(String data) { System.out.println("Lógica para generar XML"); } } package com.trifulcas.ejerciciosSolid; public class ReportGeneratorID { IReportGenerator reportGenerator; public ReportGeneratorID(IReportGenerator reportGenerator) { this.reportGenerator = reportGenerator; } public void generateReport(String data) { reportGenerator.generateReport(data); } } package com.trifulcas.ejerciciosSolid; public class ProbarReports { public static void main(String[] args) { String datos="Hola que tal"; // Generar un PDF ReportGeneratorPDF rgp=new ReportGeneratorPDF(); rgp.generateReport(datos); // Generar un XML con ID ReportGeneratorXML rgx=new ReportGeneratorXML(); ReportGeneratorID rgid=new ReportGeneratorID(rgx); rgid.generateReport(datos); rgid=new ReportGeneratorID(rgx); rgid.generateReport(datos); } } package com.trifulcas.ejerciciosSolid; public interface IClean { void Clean(); } package com.trifulcas.ejerciciosSolid; public class Apartment implements IClean { @Override public void Clean() { System.out.println("Apartment cleaned."); } } package com.trifulcas.ejerciciosSolid; import java.util.Date; public interface IRoom { void Reserve(Date from, Date to); void CheckInventory(); } package com.trifulcas.ejerciciosSolid; public interface IInventory { void CheckInventory(); } package com.trifulcas.ejerciciosSolid; import java.util.Date; public interface IReserve { void Reserve(Date from, Date to); }