Ejemplos Single responsibility
import java.util.HashMap; import java.util.Map; public class Student { private String Name; private Map<String, Double> CoursesAndGrades = new HashMap<String, Double>(); public void EnrollCourse(String courseName) { CoursesAndGrades.put(courseName, 0.0); // default grade } public void AssignGrade(String courseName, double grade) { if (CoursesAndGrades.containsKey(courseName)) { CoursesAndGrades.put(courseName, grade); } } public double CalculateGPA() { // Basic GPA calculation logic double sum = 0.0; for (double grade : CoursesAndGrades.values()) { sum += grade; } return sum / CoursesAndGrades.size(); } public void PrintTranscript() { System.out.printf("Transcript for %s\n", Name); for (Map.Entry<String, Double> course : CoursesAndGrades.entrySet()) { System.out.printf("%s: %.2f\n", course.getKey(), course.getValue()); } System.out.printf("GPA: %.2f\n", CalculateGPA()); } }
import java.util.HashMap; import java.util.Map; public class Student { private String Name; private Map<String, Double> CoursesAndGrades = new HashMap<String, Double>(); public void EnrollCourse(String courseName) { CoursesAndGrades.put(courseName, 0.0); // default grade } public void AssignGrade(String courseName, double grade) { if (CoursesAndGrades.containsKey(courseName)) { CoursesAndGrades.put(courseName, grade); } } } public class GPACalculator { public double CalculateGPA(Student student) { // Basic GPA calculation logic double sum = 0.0; for (double grade : student.CoursesAndGrades.values()) { sum += grade; } return sum / student.CoursesAndGrades.size(); } } public class TranscriptGenerator { private GPACalculator _gpaCalculator; public TranscriptGenerator(GPACalculator gpaCalculator) { _gpaCalculator = gpaCalculator; } public void PrintTranscript(Student student) { System.out.printf("Transcript for %s\n", student.Name); for (Map.Entry<String, Double> course : student.CoursesAndGrades.entrySet()) { System.out.printf("%s: %.2f\n", course.getKey(), course.getValue()); } System.out.printf("GPA: %.2f\n", _gpaCalculator.CalculateGPA(student)); } } //Testing the Single Responsibility Principle public class Program { public static void main(String[] args) { Student alice = new Student(); alice.Name = "Alice"; alice.EnrollCourse("Mathematics"); alice.AssignGrade("Mathematics", 90); GPACalculator gpaCalc = new GPACalculator(); TranscriptGenerator transcriptGen = new TranscriptGenerator(gpaCalc); transcriptGen.PrintTranscript(alice); } }