Commit e2253a88 by Patryk Czarnik

Rozważania na temat wielu implementacji interfejsu

parent 89dc6bcb
package com.example.demo;
import java.util.List;
// @Component("inna") i potem za pomocą Qualifier wskazać w miejscu użycia (podczas wstrzykiwania)
// albo można za pomocą @Primary wskazać, że teraz ten komponent ma być wybrany
public class InnaLogika implements LogikaKalkulatora {
@Override
public long oblicz(long liczba1, long liczba2, String operacja) {
long wynik = switch(operacja) {
case "+" -> liczba1 + liczba2 + 1000;
case "-" -> liczba1 - liczba2 + 1000;
case "*" -> liczba1 * liczba2 + 1000;
case "/" -> liczba1 / liczba2 + 1000;
default -> 0L;
};
return wynik;
}
@Override
public List<String> getHistoriaDzialan() {
return List.of("Ala", "Ola", "Ela");
}
}
......@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/kalkulator")
public class KalkulatorController {
//@Qualifier("inna")
@Autowired
private LogikaKalkulatora logikaKalkulatora;
......
......@@ -17,7 +17,11 @@ public class WstrzykiwaniePrzezKonstruktor {
public WstrzykiwaniePrzezKonstruktor(LogikaKalkulatora logikaKalkulatora) {
this.logikaKalkulatora = logikaKalkulatora;
}
// public WstrzykiwaniePrzezKonstruktor(@Qualifier("inna") LogikaKalkulatora logikaKalkulatora) {
// this.logikaKalkulatora = logikaKalkulatora;
// }
@GetMapping(path="/liczenie", produces="text/plain")
@ResponseBody
public String liczenie(Long liczba1, Long liczba2, String operacja) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment