객체의 의존성

박핸지·2021년 11월 10일
0

객체 지향적으로 프로그램을 구현하다 보면, 다른 객체가 제공하는 기능을 이용해서 자신의 기능을 완성하는 객체가 출현하게 된다.
한 객체가 다른 객체를 이용한다는 것은, 실제 구현에서는 한 객체의 코드에서 다른 객체를 생성하거나 다른 객체의 메서드를 호출한다는 것을 말한다.

public class FlowController {
	//fileName 필드 초기화 코드 생략
    
    public void process() {
    	FileDataReader reader = new FileDataReader(fileName); //객체 생성
        byte[] plainBytes = reader.read(); //메서드 호출
        
        ByteEncryptor encryptor = new ByteEncryptor(); //객체 생성
        byte[] encryptedBytes = encryptor.encrypt(plainBytes); //메서드 호출
        
        FileDataWriter writer = new FileDataWriter(); //객체 생성
        writer.write(encryptedBytes); //메서드 호출
    }
}

이렇게 한 객체가 다른 객체를 생성하거나 다른 객체의 메서드를 호출할 때 이를 그 객체에 의존(dependency)한다고 표현한다.

위 코드에서는 FlowController가 FileDataReader에 의존한다고 표현할 수 있다.
객체를 생성하거나 메서드를 호출하는 것뿐만 아니라 파라미터로 전달받는 경우에도 의존한다고 볼 수 있다.

뭐 이런식으로..

public void process(ByteEncryptor encryptor) {
	
}

의존한다는 것은 의존하는 타입에 변경이 발생할 때 나도 함께 변경될 가능성이 높다는 것을 뜻한다.

  • 내가 변경되면 나에게 의존하고 있는 코드에 영향을 준다.
  • 나의 요구가 변경되면 내가 의존하고 있는 타입에 영향을 준다.
profile
핸지의 메모장ㅎㅅㅎ

0개의 댓글

관련 채용 정보