Mam problem, ponieważ mam do zaimplementowania 3 funkcje (mnożenie Hadamarda, odejmowanie i dodawanie) macierzy. I wykonuje w nich te same operacje tylko różnią się znakiem. Idzie to jakoś prosciej zrobić czy trzeba wywoływac 3 funkcje, gdzie każda różni się jednym znakiem?
0
0
Można to zrobić w OOP tak (pseudo kod):
interface Operation
operate(int a, int b): int;
class Multiplication implements Operation
operate(int a, int b) => a * b;
class Matrix
constructor(Operation operation) this.operation = operation;
calculate() => this.operation.operate(5, 5) + 25 * 8;
Matrix multiplicationMatrix = new Matrix(new Multiplication());
multiplicationMatrix.calculate();
Oczywiście będziesz miał 3 klasy które implementują interfejs Operation, nazwy też mocno robocze bo nie znam się na matematyce.
0
Nie do końca rozumiem to co napisałeś. Mam główną klasę Matrix gdzie mam różne metody i między innymi teraz muszę napisać 3 metody które robią działania na nich. I nie wiem jak to zrobić za bardzo. Możesz bardziej to rozjaśnić?
2
Integer jakasMetoda(Integer x, Integer y, BinaryOperator<Integer> op) {
return op.apply(x,y);
}
BinaryOperator<Integer> plus = (a,b) -> a+b;
BinaryOperator<Integer> minus= (a,b) -> a-b;
println(jakasMetoda(2,4, plus));
println(jakasMetoda(2,4, minus));
To dla operacji na bardzo trywialnej macierzy 1x1 - dla większych musisz sobie sam poradzić.