비슷한 논리이지만 다른 두 가지 Android 응용 프로그램을 개발 중이며 둘 사이에 코드를 공유하려고합니다. 현재 각 응용 프로그램에 대한 프로젝트와 공유 클래스에 대한 추가 프로젝트가 있습니다. 공유 클래스 프로젝트는 라이브러리이며 응용 프로그램 프로젝트는이 라이브러리에 링크됩니다.각 프로젝트마다 수정 된 프로젝트 간 싱글 톤 논리 공유
문제는 서버에서 데이터를 가져 와서 해당 데이터를 캐싱하는 클래스에 있습니다. 이 클래스는 DataSingleton이라고합니다. 데이터를 가져 오는 데는 두 가지 응용 프로그램에서 모두 동일한 논리와 다른 두 가지 논리가 있습니다. 내 질문은 이것을 지원하는 클래스를 설계하는 방법입니다. 이름으로 묵시적으로,
- 데이터 싱글은 싱글해야한다 :
여기에 몇 가지 제한이 있습니다.
- 공유 프로젝트의 공유 논리 중 일부는 DataSingleton을 사용하므로 DataSingleton도 공유 클래스 프로젝트에 있어야합니다. 그렇지 않으면 빌드 오류가 발생합니다.
- 공유 프로젝트에 응용 프로그램 관련 논리를 넣고 싶지 않습니다.
이것이 C++ 인 경우 각 응용 프로그램마다 2 개의 다른 클래스 이름 DataSingleton이 있고 링커에 올바른 클래스를 연결하게합니다. 두 클래스 모두 공유 논리에 대한 코드 공유를 처리하기 위해 공통 기본 클래스에서 상속받을 수 있습니다. 자바에서 비슷한 것을 할 수 있습니까?
도움이된다면 응용 프로그램 시작시 DataSingleton의 동작을 결정하는 인수를 사용하여 "초기화"할 수 있습니다. 클래스를 전달하려고 생각했지만 그 클래스는 DataSingleton의 private 멤버에 액세스 할 수 없습니다.
이 작업을 수행하는 "올바른"방법은 무엇입니까?
DataSingleton을 사용하는 공유 논리가 있습니다. 지금 어떤 수업을 사용해야하는지 어떻게 알 수 있습니까? –
"공유 논리"가 의미하는 바를보다 명확하게 설명해야합니다. 응용 프로그램이 서로 상호 작용하지 않는다면 ProjectA가 실행되면 ProjectB가 실행되면 공유 논리가 확장 된 ProjectA의 'DataSingleton'을 사용하고 ProjectB가 실행되면 공유 논리가 확장 ProjectB의'DataSingleton' –
공유 프로젝트를 독립 실행 형으로 실행해야하는 경우 (라이브러리로만 사용되었다고 말했지만) 확장 한'AbstractDataSingleton' 옆에'DataSingleton'을 생성하여 필요한 데이터를 포함 할 수 있습니다 공유 프로젝트의 필요에 대해서만 독립 실행 형으로 사용할 수 있지만 ProjectA 또는 ProjectB에서는 사용하지 않습니다. –