LabWork02: Лабораторная сдана

This commit is contained in:
Safgerd 2023-03-07 09:20:17 +04:00
parent eada9f3c88
commit 809e593a86
5 changed files with 31 additions and 82 deletions

View File

@ -11,45 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
//@RequestMapping("/lab1") //@RequestMapping("/lab1")
public class LabworkApplication { public class LabworkApplication {
//инимум 4 операции разные интерфейс с дженерик использ сервис
//2 3 реализации с разными данными
//писать контроллеры и делать интерфейс
//озвращ свой тип данных обджект
// написать набор тестов для кажд метода 12 тестов
//создать интерфейс 4 метода реализ какие то операц над данными
//написать 2-3 реализации
//каждая соответственно делает то что мы хотим с данными (реализ строка число)
//потом пишем сервис (можно из примера) из поиска берем нужную реализацию и делаем действия
//пишем констролер чтоб извне...
//пишем интерфес на жабе
//и написать тесты для каждого метода чтобы все проверить
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(LabworkApplication.class, args); SpringApplication.run(LabworkApplication.class, args);
} }
/*@GetMapping("/sum")
public int sum( @RequestParam(value = "num1", defaultValue = "0") int num1,
@RequestParam(value = "num2", defaultValue = "0") int num2)
{
return num1 + num2;
}
@GetMapping("/sub")
public int sub( @RequestParam(value = "num1", defaultValue = "0") int num1,
@RequestParam(value = "num2", defaultValue = "0") int num2)
{
return num1 - num2;
}
@GetMapping("/mul")
public int mul( @RequestParam(value = "num1", defaultValue = "0") int num1,
@RequestParam(value = "num2", defaultValue = "0") int num2)
{
return num1 * num2;
}
@GetMapping("/div")
public int div( @RequestParam(value = "num1", defaultValue = "0") int num1,
@RequestParam(value = "num2", defaultValue = "0") int num2)
{
return num1 / num2;
}*/
} }

View File

@ -3,9 +3,9 @@ package ru.ulstu.is.labwork.calculator.domain;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
public interface Calculator { public interface Calculator<T> {
Object sum(Object val1, Object val2); T sum(T val1, T val2);
Object sub(Object val1, Object val2); T sub(T val1, T val2);
Object mul(Object val1, Object val2); T mul(T val1, T val2);
Object div(Object val1, Object val2); T div(T val1, T val2);
} }

View File

@ -1,36 +1,23 @@
package ru.ulstu.is.labwork.calculator.domain; package ru.ulstu.is.labwork.calculator.domain;
public class CalculatorInt implements Calculator{ public class CalculatorInt implements Calculator<Integer>{
@Override @Override
public Object sum(Object val1, Object val2) { public Integer sum(Integer val1, Integer val2) {
if (val1 instanceof Integer && val2 instanceof Integer){ return val1 + val2;
return (Integer)val1 + (Integer)val2;
}
return 0;
} }
@Override @Override
public Object sub(Object val1, Object val2) { public Integer sub(Integer val1, Integer val2) {
if (val1 instanceof Integer && val2 instanceof Integer){ return val1 - val2;
return (Integer)val1 - (Integer)val2;
}
return 0;
} }
@Override @Override
public Object mul(Object val1, Object val2) { public Integer mul(Integer val1, Integer val2) {
if (val1 instanceof Integer && val2 instanceof Integer){ return val1 * val2;
return (Integer)val1 * (Integer)val2;
}
return 0;
} }
@Override @Override
public Object div(Object val1, Object val2) { public Integer div(Integer val1, Integer val2) {
if (val1 instanceof Integer && val2 instanceof Integer){ return val1 / val2;
return (Integer)val1 / (Integer)val2;
}
return 0;
} }
} }

View File

@ -1,23 +1,23 @@
package ru.ulstu.is.labwork.calculator.domain; package ru.ulstu.is.labwork.calculator.domain;
public class CalculatorString implements Calculator{ public class CalculatorString implements Calculator<String>{
@Override @Override
public Object sum(Object val1, Object val2) { public String sum(String val1, String val2) {
return (String)val1 + '+' + (String)val2; return val1 + '+' + val2;
} }
@Override @Override
public Object sub(Object val1, Object val2) { public String sub(String val1, String val2) {
return (String)val1 + '-' + (String)val2; return val1 + '-' + val2;
} }
@Override @Override
public Object mul(Object val1, Object val2) { public String mul(String val1, String val2) {
return (String)val1 + '*' + (String)val2; return val1 + '*' + val2;
} }
@Override @Override
public Object div(Object val1, Object val2) { public String div(String val1, String val2) {
return (String)val1 + '/' + (String)val2; return val1 + '/' + val2;
} }
} }

View File

@ -14,10 +14,10 @@ public class CalculatorService {
public Object sum(Object val1, Object val2, String type){ public Object sum(Object val1, Object val2, String type){
final Calculator calculator = (Calculator) applicationContext.getBean(type); final Calculator calculator = (Calculator) applicationContext.getBean(type);
if (type.compareTo("inttype") == 0){ if ("inttype".equals(type)){
return calculator.sum(Integer.parseInt(val1.toString()), Integer.parseInt(val2.toString())); return calculator.sum(Integer.parseInt(val1.toString()), Integer.parseInt(val2.toString()));
} }
else if (type.compareTo("stringtype") == 0) { else if ("stringtype".equals(type)) {
return String.format("%s", calculator.sum(val1.toString(), val2.toString())); return String.format("%s", calculator.sum(val1.toString(), val2.toString()));
} }
return null; return null;
@ -25,30 +25,30 @@ public class CalculatorService {
public Object sub(Object val1, Object val2, String type){ public Object sub(Object val1, Object val2, String type){
final Calculator calculator = (Calculator) applicationContext.getBean(type); final Calculator calculator = (Calculator) applicationContext.getBean(type);
if (type.compareTo("inttype") == 0){ if ("inttype".equals(type)){
return calculator.sub(Integer.parseInt(val1.toString()), Integer.parseInt(val2.toString())); return calculator.sub(Integer.parseInt(val1.toString()), Integer.parseInt(val2.toString()));
} }
else if (type.compareTo("stringtype") == 0) { else if ("stringtype".equals(type)) {
return String.format("%s", calculator.sub(val1.toString(), val2.toString())); return String.format("%s", calculator.sub(val1.toString(), val2.toString()));
} }
return null; return null;
} }
public Object mul(Object val1, Object val2, String type){ public Object mul(Object val1, Object val2, String type){
final Calculator calculator = (Calculator) applicationContext.getBean(type); final Calculator calculator = (Calculator) applicationContext.getBean(type);
if (type.compareTo("inttype") == 0){ if ("inttype".equals(type)){
return calculator.mul(Integer.parseInt(val1.toString()), Integer.parseInt(val2.toString())); return calculator.mul(Integer.parseInt(val1.toString()), Integer.parseInt(val2.toString()));
} }
else if (type.compareTo("stringtype") == 0) { else if ("stringtype".equals(type)) {
return String.format("%s", calculator.mul(val1.toString(), val2.toString())); return String.format("%s", calculator.mul(val1.toString(), val2.toString()));
} }
return null; return null;
} }
public Object div(Object val1, Object val2, String type){ public Object div(Object val1, Object val2, String type){
final Calculator calculator = (Calculator) applicationContext.getBean(type); final Calculator calculator = (Calculator) applicationContext.getBean(type);
if (type.compareTo("inttype") == 0){ if ("inttype".equals(type)){
return calculator.div(Integer.parseInt(val1.toString()), Integer.parseInt(val2.toString())); return calculator.div(Integer.parseInt(val1.toString()), Integer.parseInt(val2.toString()));
} }
else if (type.compareTo("stringtype") == 0) { else if ("stringtype".equals(type)) {
return String.format("%s", calculator.div(val1.toString(), val2.toString())); return String.format("%s", calculator.div(val1.toString(), val2.toString()));
} }
return null; return null;