Hallo zusammen,
ich habe ein paar allgemeine Fragen zu den Begriffen "Komponente" und "Module".
Soweit ich weiß, zeichnet eine Komponente aus, dass sie eine bestimmte Aufgabe erfüllt, über starke innere Kohäsion verfügt und über Schnittstelle(n) verfügbar ist.
Mehre Komponenten können dann in Modulen zusammengefasst werden. Stimmt das soweit?
Also wäre dies jetzt eine Komponente?
Auf diese Komponente(?) könnte man dann wie folgt zugreifen:
Nun habe ich noch eine weitere Komponente (?), die Flächen berechnet:
Fasste man nun die beiden Komponenten in einem Projekt zusammen, ergäbe sich daraus ein Modul welches die Aufgabe erfüllt die 4 Grundrechenarten und Flächen berechnen zu können. Dieses Modul könnte man dann z.B. in einem Taschenrechner-Programm über die Schnittstelle "Calculate" implementieren.
Möchte man nun einen simpleren Taschenrechner entwerfen, dann könnte man die Komponente "StandardCalculus" in diesen implementieren. Diese wäre in diesem Fall dann ebenfalls als Modul anzusehen da laut Wiki: "Modul=funktional geschlossene Einheit die einen bestimmten Dienst bereitstellt".
Ist das so richtig gedacht? Also Sinn & Zweck mal außen vor gelassen, mir gehts allein um die Begriffe und deren Verwendung im Code.
Würde mich über Antworten freuen!
ich habe ein paar allgemeine Fragen zu den Begriffen "Komponente" und "Module".
Soweit ich weiß, zeichnet eine Komponente aus, dass sie eine bestimmte Aufgabe erfüllt, über starke innere Kohäsion verfügt und über Schnittstelle(n) verfügbar ist.
Mehre Komponenten können dann in Modulen zusammengefasst werden. Stimmt das soweit?
Also wäre dies jetzt eine Komponente?
Java:
public interface Calculate {
public Double calculate(double number1, double number2, String operation);
}
Code:
class StandardCalculus implements Calculate {
private double result;
@Override
public Double calculate(double number1, double number2, String operation) {
switch (operation) {
case "+": {
result = add(number1, number2);
break;
}
case "-": {
result = substract(number1, number2);
break;
}
case "*": {
result = multiply(number1, number2);
break;
}
case "/": {
result = divide(number1, number2);
break;
}
}
return result;
}
private double add(double n1, double n2) {
return n1 + n2;
}
private double substract(double n1, double n2) {
return n1 - n2;
}
private double multiply(double n1, double n2) {
return n1 * n2;
}
private double divide(double n1, double n2) {
return n1 / n2;
}
}
Auf diese Komponente(?) könnte man dann wie folgt zugreifen:
Code:
public static void main(String[] args) {
Calculate simpleOperation = new StandardCalculus();
System.out.println(simpleOperation.calculate(4, 5, "+"));
}
Nun habe ich noch eine weitere Komponente (?), die Flächen berechnet:
Code:
public class CalculateAreas implements Calculate {
private double result;
@Override
public Double calculate(double number1, double number2, String operation) {
switch (operation) {
case "rectangle":
result = calculateRectangleArea(number1, number2);
break;
case "circle":
result = calculateCircleArea(number1);
break;
}
return result;
}
private double calculateRectangleArea(double n1, double n2) {
return n1 * n2;
}
private double calculateCircleArea(double radius) {
return 3.14 * (radius*radius);
}
}
Fasste man nun die beiden Komponenten in einem Projekt zusammen, ergäbe sich daraus ein Modul welches die Aufgabe erfüllt die 4 Grundrechenarten und Flächen berechnen zu können. Dieses Modul könnte man dann z.B. in einem Taschenrechner-Programm über die Schnittstelle "Calculate" implementieren.
Möchte man nun einen simpleren Taschenrechner entwerfen, dann könnte man die Komponente "StandardCalculus" in diesen implementieren. Diese wäre in diesem Fall dann ebenfalls als Modul anzusehen da laut Wiki: "Modul=funktional geschlossene Einheit die einen bestimmten Dienst bereitstellt".
Ist das so richtig gedacht? Also Sinn & Zweck mal außen vor gelassen, mir gehts allein um die Begriffe und deren Verwendung im Code.
Würde mich über Antworten freuen!