2013-03-31 1 views
23

나는안드로이드에 사용 된 디자인 패턴은 무엇입니까?

  1. 방송 수신기는 의도는
  2. 보기가 사용하는 공장 디자인 패턴의 종류 복합 디자인 패턴을 사용
  3. 관찰자 디자인 패턴을 사용하여 ... 같은 안드로이드에서 사용되는 디자인 패턴의 일부를 알고
  4. 미디어 프레임 워크는 외관 디자인 패턴을 사용합니다

이외에도 안드로이드에 사용 된 다른 디자인 패턴이 있습니까? 당신의 생각을 감사하십시오.

+1

수 있습니다. 모든 어댑터 (예 : BaseAdapter, SimpleAdapter..etc)는 어댑터 디자인 패턴을 사용합니다. – Pragnani

+0

SO에 속하지 않는 개방적이고 단호한 질문입니다. – nwellnhof

+1

코드를 보면 안티 패턴이 어떤 디자인 패턴보다 많이 사용되는 것처럼 보입니다. 예, 언급 한 패턴 예제가 있지만 대부분의 코드는 소프트웨어 작성시 수행하지 않는 작업, 특히 SDK만을 보여줍니다. 내가 그것에 도착하면 이것에 관한 블로그를 쓰고 싶다. – Sileria

답변

8

안드로이드는 구조상 많은 패턴을 사용합니다.

가장 먼저 볼 수있는 패턴은 레이어 패턴으로, POSA 1 (패턴 지향 소프트웨어 아키텍처 1) 책의 아키텍처 패턴으로 분류됩니다. 레이어 패턴의 주요 구조적 특징은 레이어 J의 서비스가 레이어 J + 1에서만 사용된다는 것입니다. 레이어 간의 직접적인 종속성은 없습니다. 이 패턴은 높은 수준의 작업이 낮은 수준의 작업에 의존하는 낮은 수준과 높은 수준의 문제가 혼합 된 문제를 해결합니다. 안드로이드는 다중 추상 레벨 레이어 스택 (자세한 내용은 http://elinux.org/Android_Architecture을 참조하십시오)에서 빌드되므로이 디자인은 해당 문제를 해결하기 위해 배포됩니다.

안드로이드는 멀티 프로세스에서 많은 일을 처리하므로 IPC (프로세스 간 통신) 메커니즘이 잘 설계되어야합니다. Android, Binder 및 AIDL을 사용하여 이러한 프로세스의 서비스가 Java, C 또는 C++로 작성 될 수 있지만 원활하게 통신 할 수 있습니다. 바인더는 Proxy (In Gang of Four 책), Broker (POSA 1 권) 및 Facade Wrapper 패턴 (이 링크 http://www.cs.wustl.edu/~schmidt/PDF/wrapper-facade.pdf 참조)을 구현하여 구현됩니다. 프록시 패턴은 클라이언트와의 통신 세부 사항을 숨기므로 프로세스가 로컬 컨텍스트 또는 네트워크 컨텍스트의 객체와 통일적으로 통신 할 수 있습니다. 브로커는 통신 관련 문제를 격리하는 데 사용됩니다. Facade Wrapper 패턴은 고급 인터페이스 내에서 C 라이브러리 Android에 저급 함수 및 데이터 구조를 캡슐화하는 데 사용됩니다.

멀티 스레드 메커니즘은 많은 패턴을 사용합니다. 볼 수있는 패턴은 장기 실행 호출을 실행하는 데 사용되는 명령 프로세서 패턴입니다.

옵저버 패턴은 시스템 관련 상태를 추적하는 데 사용됩니다.

....

이것들은 모두 기억할 수 있습니다. 안드로이드 디자인 패턴에 관심이 있다면. 자세한 내용은 Coursera의 https://class.coursera.org/posa-001/class/index 코스를 살펴보십시오.

관련 문제