2011-03-09 4 views
2

이것은 아주 기본적인있을 수 있습니다,하지만 난 OOP의 원칙에 내 권력을 잃게 시작했습니다 ... 내 주요 활동 클래스에 코드의 양을 줄이기 위해 몇 가지 클래스를 설계 할안드로이드 OOP 설계의 기초

, 그것은 1000+ 선에 성장했다. (UI 이벤트 처리 클래스, 메시지 처리 클래스, 알람/브로드 캐스트 클래스 등).

그러나 이러한 클래스는 findViewById와 같은 보호 된 Activity 메서드에 액세스해야합니다.

상속을 사용하여 이러한 클래스를 디자인하는 것이 적절하지 않다고 생각합니다. 실제로 활동 자체가 아니기 때문에 ... 나는 java 클래스의 친구 클래스를 찾고 있습니다.

어떤 조언이 필요합니까? 미안하다면 꽤 모호하게 들렸다.

답변

0

메시지 처리기를 별도의 클래스에 구현하고 "this"(현재 클래스의 인스턴스)를 해당 처리기 클래스에 전달하여 이러한 메서드를 호출 할 수있는 이유는 무엇입니까? 또한 Dependency Injection Design Pattern을 살펴보십시오.

1

GUI 응용 프로그램의 경우 수행해야하는 가장 중요한 디자인 패턴 중 하나는 Model-View-Controller (MVC) 패턴입니다.

Android는 MVC 스타일로 기울여 져야합니다. Activity는 Controller 부분으로 생각할 수 있으며 XML 마크 업은 View 부분입니다.

새로운 클래스가 findViewById를 많이 호출하면 책임을 잘 분할하지 못할 수 있습니다. 보기 조작을 많이한다면, subclassing your View classes and referencing them in your XML을 고려해보십시오. 많은 이벤트 리스너를 추가하는 경우 Activity 하위 클래스에서 계속 수행해야하며 대신 검색 한 데이터를 뷰 객체 자체가 아닌 도우미 클래스에 전달해야합니다.