문제

단일 클래스에 다음 두 가지 방법이있는 약간의 J2ME 코드를 상속했습니다.

public DataOutputStream getOutputStream(String filePath) throws IOException
{
    return Connector.openDataOutputStream(filePath);
}


public DataOutputStream createOutputStream(String filePath) throws IOException
{
    FileConnection fc = (FileConnection)Connector.open(filePath);

    if(fc.exists())
        return fc.openDataOutputStream();
    else
        fc.create();
    return fc.openDataOutputStream();
}

내가 알 수있는 한,이 두 가지 방법은 정확히 같은 일을합니다. 기이하게도, 방법은 수업에서 서로 바로 옆에 있으며, 그곳에있는 사람은 누구든지 자신이하고있는 일을 알고 있음을 암시합니다.

이러한 방법은 본질적으로 동일합니까? 그들 중 하나를 제거 할 수 있습니까? (또는 아마도 그것에 대해 생각할 것입니다).

도움이 되었습니까?

해결책

그것은 나에게 보인다 getOutputStream 파일이 존재하지 않으면 예외가 발생합니다.

아무도 그 행동에 의존하지 않는 경우에만 제거 할 수 있습니다.

이 상황에서 일반적인 리팩토링은 부울 매개 변수를 추가하는 것입니다. createOutputStream 파일이 아직 존재하지 않으면 파일을 만들어야하는지 여부를 알려주십시오.

다른 팁

FileConnector는 An에서 사용할 수 있습니다 선택적 패키지 당신은 그 존재에 의존 할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top