안녕하세요 "활동", "서비스"와 안드로이드에서 "FragmentActivity"의 하위 클래스를 필요로하는 매우 복잡한 응용 프로그램을 (그러나이 질문은 물론 순수 자바로 여전히 유효)다른 클래스간에 코드를 공유하는 방법은 무엇입니까?
3 각 클래스는 "My Layer"의 유틸리티 세트로 확장됩니다. 토스트 나 특정 설정을 처리하거나 디스크의 파일을 읽는 특정 방법을 표시하는 특정 방법.
지금까지는 모든 세 가지 유형의 클래스에 대해 (MyUtilities) 공용 을 만들었습니다.
public class MyActivity extends Activity implements MyUtilities
public class MyFragmentActivity extends FragmentActivity implements MyUtilities
public class MyService extends Service implements MyUtilities
public class MyActivity1 extends MyActivity
public class MyFragmentActivity1 extends MyFragmentActivity
public class MyService1 extends MyService
하지만 이것은 내가 인터페이스의 필드와 메소드를 정의 할 수 없기 때문에 나 복사를 종료하고 3 개 클래스의 일반적인 방법을 붙여 넣기합니다. 그렇게 할 수있는 더 좋은 방법이 있습니까? 코드 복사는 오랜 기간 동안 매우 오류가 발생하기 쉽습니다.
나는 추상 클래스를 보았지만이 경우에 어떻게 사용하는지 모르겠습니다. 이상적으로는 그것을 필요로 무엇을 분명히 허용되지 않는
public class MyActivity extends Activity, MyUtilities
처럼 "이중 확장"하지만 이는 내 문제를 해결할 것입니다.
아이디어를주세요.
감사합니다.
PS : here'a에게 간단한 예로서 요청 목적지
가능한 I 이미 일반적인 클래스에 정적 방법을 사용하고있다. 3 각 객체 구성 필드를 지원할 수 있어야하고 각각 포함하는 인터페이스로가는
private Configuration config
public Configuration getConfiguration(){return config;}
public void setConfiguration(Configuration cfg){this.config=cfg;}
다음은 방법이 존재하지만 여전히 어떤 I 돈을 복사 및 붙여 넣기 코드해야한다는 요구에 도움이 정말 좋아하지 않아.
더 많은 코드를 공유하십시오. 대답은 분리 된 클래스의 메서드에서 논리를 추출하는 것입니다. 그러나 더 나은 도움을 받으려면 코드를 공유하십시오. – Ele
감사합니다. 기본 텍스트에 간단한 예제를 추가했습니다. – Lele