[Q&A] 객체와 생성자

김지현·2023년 10월 19일
2

JAVA

목록 보기
13/14

질문

코드를 짜다가 질문 사항이 생겼다

이것은 내가 짠 코드

public class Calculator {

    private AddOperation addOperation = new AddOperation();
    private SubstractOperation substractOperation = new SubstractOperation();
    private MultiplyOperation multiplyOperation = new MultiplyOperation();
    private DivideOperation divideOperation = new DivideOperation();
  
}

이것은 정답으로 나와있던 코드

public class Calculator {

    private final AddOperation addOperation;
    private final SubstractOperation substractOperation;
    private final MultiplyOperation multiplyOperation;
    private final DivideOperation divideOperation;

    public Calculator(AddOperation addOperation, SubstractOperation substractOperation,
                      MultiplyOperation multiplyOperation, DivideOperation divideOperation){
        this.addOperation = addOperation;
        this.substractOperation = substractOperation;
        this.multiplyOperation = multiplyOperation;
        this.divideOperation = divideOperation;
    }

}

해결

내가 짠 코드는 객체를 바로 생성하고 정답 코드는 변수로 선언을 해준 뒤, main에서 생성후 생성자로 대입하는 방식이었는데 두 코드 모두 원하는 대로 실행이 되었지만 두 경우의 차이가 궁금했다. 첫 번째의 경우는 객체를 바로 생성하므로 강제성이 생기고 강한 연결성이 부여되는데 반해 두 번 째 경우는 유연한 코드가 된다. 수정이 용이 하며 약한 연결성을 가지므로 필요한 경우에 맞게 구현하면 된다고 한다. (대부분 2번째 경우로 사용되는듯함)

profile
Server Developer

0개의 댓글