2012-02-10 2 views
1

나는 대답 할 수 있는지 확실하지 않은 질문이 있습니다.Java 클래스에 자동으로 생성 된 메서드 포함

MySQL 데이터베이스의 테이블 내용을 기반으로 Java 메소드를 자동으로 생성하는 서버에 PHP 스크립트가 있습니다. 스크립트는이 메소드가 저장된 .java 파일을 작성합니다.

그런 다음이 메서드를 다운로드하고이 메서드를 복사하여 주 Java 클래스에 붙여 넣습니다. 나는 이것이 불필요한 단계라고 생각한다. 메서드를 복사하고 붙여 넣기보다는 Java 클래스에 포함시키는 방법이 있습니까?

메소드를 복사하여 붙여 넣어야하는 java 클래스의 지점에서 method.java 파일에 대한 참조를 작성하려고합니다.

같은 뭔가 :

public class ShowAlert { 
      public void showAlert(String toast) throws IOException { 
    System.out.println("alert = "+externalMethod()); 
    } 

    include(externalMethod.java); 

} 

다음 externalMethod.java이있다는

public String externalMethod(){ 
return "hello world"; 
} 

나는이 가능한 경우 확실하지 오전하지만이 있다면 그것은 좋은 것입니다.

답변

2

Java에 "파일 포함"기능이 없습니다.

public class GeneratedClass {  
    public static String externalMethod(){ 
     return "hello world"; 
    } 
} 

과 같이 호출 : 나는 당신이 대신을 생성하는 것이 좋습니다

GeneratedClass.externalMethod(); 

그 방법, 필기 파일과 생성 된 파일이 완전히 분리 될 수 있습니다.

+0

빠른 응답을 보내 주신 모든 분들께 감사드립니다. 나는 상기를 시도하고 응답 할 것이다. 미래에 대한 다른 제안을 살펴볼 것입니다. 1 단계. 내 디자인 패턴을 검토 강의 노트 :) –

0

완전한 자바 클래스를 만들려면 Smarty과 같은 PHP 템플릿 엔진을 사용할 수 있습니다. 기본 클래스는 생성 된 메서드의 자리 표시자를 포함하는 템플릿입니다.

1

JSR 223에 설명 된 Java ScriptEngine과 같은 것을 사용하는 것이 좋습니다. 예는 here입니다.

Java 용 LUA 통합도 있습니다.

1

생성 된 코드와 직접 작성한 코드를 별도의 파일로 보관하는 것이 이상적입니다. 그런 식으로 당신은 당신이하는 일을 할 필요가 없을 것입니다. Aasmund의 제안을 사용하십시오. 그것이 올바른 길입니다. 이를 허용하기 위해 코드를 재구성해야 할 수도 있지만 나중에는 나중에 개선하는 것이 좋습니다.

여분의 마일을 사용하고 인터페이스를 사용하도록 요청할 것입니다. 생성 된 코드는 인터페이스를 구현해야하며 수동 코드는 인터페이스 만 사용하여 모든 것을 참조해야합니다. 인스턴스를 반환하는 Factory를 가질 수 있습니다.

이렇게하면 수동 코드와 생성 된 코드의 분리 가능성을 높일 수 있습니다. 나는 DAO (데이터 접근 객체) 패턴을 어느 정도 사용하고 있다고 생각할 것이다. 생성 된 코드를 별도로 유지하고 인터페이스를 사용하여 액세스하는 경우 DAO 패턴이 가장 잘 작동합니다. 인터페이스를 사용하면 런타임시 단위 테스트를 실행하는 것과 같이 DAO의 구현을 다른 것으로 변경할 수 있습니다.

관련 문제