[java] 인터페이스를 사용하여 네트워크 통신하기
네트워크 통신을 구현할 때 인터페이스를 사용하는 것은 매우 일반적입니다. 인터페이스는 클래스 간의 계약을 정의하고, 클래스가 특정 메서드를 구현하도록 강제함으로써 코드의 유연성을 높이는 데 도움을 줍니다.
1. 인터페이스 정의
public interface NetworkService {
void connect();
void sendData(String data);
String receiveData();
void disconnect();
}
위의 코드는 NetworkService
라는 인터페이스를 정의한 것입니다. 이 인터페이스에는 connect()
, sendData()
, receiveData()
, disconnect()
메서드가 선언되어 있습니다.
2. 인터페이스 구현
public class TCPNetworkService implements NetworkService {
// connect() 메서드 구현
public void connect() {
// TCP 연결 로직 작성
}
// sendData() 메서드 구현
public void sendData(String data) {
// 데이터 송신 로직 작성
}
// receiveData() 메서드 구현
public String receiveData() {
// 데이터 수신 및 반환 로직 작성
return "";
}
// disconnect() 메서드 구현
public void disconnect() {
// 연결 해제 로직 작성
}
}
TCPNetworkService
클래스는 NetworkService
인터페이스를 구현하여, 인터페이스에 선언된 메서드들을 구체적으로 구현하고 있습니다.
3. 활용
public class NetworkHandler {
private NetworkService networkService;
// NetworkService 객체를 주입받음
public NetworkHandler(NetworkService networkService) {
this.networkService = networkService;
}
// 네트워크 통신 수행
public void performCommunication() {
networkService.connect();
networkService.sendData("Hello, World!");
String receivedData = networkService.receiveData();
networkService.disconnect();
}
}
위의 NetworkHandler
클래스는 NetworkService
인터페이스를 사용하여 네트워크 통신을 수행합니다.
이와 같이, 인터페이스를 사용하여 네트워크 통신을 구현하면 코드의 유연성이 높아지고, 유지보수가 용이해집니다.