Skip to content

Commit 8bd413b

Browse files
committed
유영우(yuyeongwoo) SOLID 과제 제출
1 parent 6c1b9d6 commit 8bd413b

27 files changed

Lines changed: 394 additions & 0 deletions
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package yuyeongwoo.dip;
2+
3+
public abstract class AbstractOperation {
4+
public abstract int operate(AbstractOperation operation, int firstNumber, int secondNumber);
5+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package yuyeongwoo.dip;
2+
3+
public class AddOperation extends AbstractOperation {
4+
@Override
5+
public int operate(AbstractOperation operation, int firstNumber, int secondNumber) {
6+
return firstNumber + secondNumber;
7+
}
8+
}

src/yuyeongwoo/dip/Calculator.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package yuyeongwoo.dip;
2+
3+
public class Calculator {
4+
5+
AbstractOperation operation = new AddOperation();
6+
7+
int calculate(AbstractOperation operation, int firstNumber, int secondNumber) {
8+
return operation.operate(operation, firstNumber, secondNumber);
9+
}
10+
}

src/yuyeongwoo/dip/Client.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package yuyeongwoo.dip;
2+
3+
public class Client {
4+
public static void main(String[] args) {
5+
Calculator calculator = new Calculator();
6+
int firstNumber = 4;
7+
int secondNumber = 2;
8+
9+
int answer = calculator.calculate(new AddOperation(), firstNumber, secondNumber);
10+
System.out.println(firstNumber + " + " + secondNumber + " = " + answer);
11+
12+
answer = calculator.calculate(new SubtractOperation(), firstNumber, secondNumber);
13+
System.out.println(firstNumber + " - " + secondNumber + " = " + answer);
14+
15+
answer = calculator.calculate(new MultiplyOperation(), firstNumber, secondNumber);
16+
System.out.println(firstNumber + " * " + secondNumber + " = " + answer);
17+
18+
answer = calculator.calculate(new DivideOperation(), firstNumber, secondNumber);
19+
System.out.println(firstNumber + " / " + secondNumber + " = " + answer);
20+
}
21+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package yuyeongwoo.dip;
2+
3+
public class DivideOperation extends AbstractOperation {
4+
@Override
5+
public int operate(AbstractOperation operation, int firstNumber, int secondNumber) {
6+
return firstNumber / secondNumber;
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package yuyeongwoo.dip;
2+
3+
public class MultiplyOperation extends AbstractOperation {
4+
@Override
5+
public int operate(AbstractOperation operation, int firstNumber, int secondNumber) {
6+
return firstNumber * secondNumber;
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package yuyeongwoo.dip;
2+
3+
public class SubtractOperation extends AbstractOperation{
4+
@Override
5+
public int operate(AbstractOperation operation, int firstNumber, int secondNumber) {
6+
return firstNumber - secondNumber;
7+
}
8+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package yuyeongwoo.isp;
2+
3+
public abstract class AbstractOperation {
4+
public abstract int operate(int firstNumber, int secondNumber);
5+
public abstract String getOperator();
6+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package yuyeongwoo.isp;
2+
3+
public class AddOperation extends AbstractOperation {
4+
@Override
5+
public int operate(int firstNumber, int secondNumber) {
6+
return firstNumber + secondNumber;
7+
}
8+
9+
@Override
10+
public String getOperator() {
11+
return "+";
12+
}
13+
}

src/yuyeongwoo/isp/Calculator.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package yuyeongwoo.isp;
2+
3+
public class Calculator {
4+
public int calculate(AbstractOperation operation, int firstNumber, int secondNumber){
5+
return operation.operate(firstNumber, secondNumber);
6+
}
7+
}

0 commit comments

Comments
 (0)