를 사용하여 플라이급 패턴에 데이터베이스 기반의 응용 프로그램

StackOverflow https://stackoverflow.com/questions/1818425

  •  10-07-2019
  •  | 
  •  

문제

할 수 있는 누군가 제게는 어떤 예의 상황에서 데이터베이스 기반의 응용 프로그램은 곳 내가 사용한 플라이급 패턴?

어떻게 알 수 있습니다,나는 사용한 플라이급 패턴점에서 내 응용 프로그램?

내가 배운 플라이급 패턴이다.하지만 이해할 수 있는 적절한 장소에서 내 데이터베이스 중심 비즈니스 응용 프로그램을 사용합니다.

도움이 되었습니까?

해결책

매우 전문화 된 데이터베이스 애플리케이션을 제외하고는 Flyweight ~할 것 같다 응용 프로그램에서 사용하지만 데이터베이스에 지속되는 엔티티를 나타내는 클래스에는 그렇지 않을 수 있습니다. 플라이급은 그렇지 않으면 수업의 많은 인스턴스화가 필요할 때 사용됩니다. 대신, 당신은 훨씬 적은 수의 수를 인스턴스화하고 각 사용에 대한 데이터 값을 변경하여 필요한 각 인스턴스에 대해 재사용합니다. 예를 들어, 매 초마다 수천 개의 클래스를 인스턴스화 해야하는 상황에서 유용 할 것입니다. 이는 일반적으로 데이터베이스에서 지속되는 엔티티의 경우가 아닙니다.

다른 팁

적용해야 합니다 어떤 경우에 그 자연스럽게 제안 솔루션으로 자신을 구체적 문제가 가지 않을 장소를 찾고 응용 프로그램에 적용할 수 있는 특정 패턴이 있습니다.

플라이급의 목적은 주소로 메모리 문제,그래서 그것은 단지 그것을 적용한 후 프로파일 응용 프로그램고 판단되는 톤의 동일한 인스턴스가 있습니다.

색상브러쉬 기본 클래스에서 라이브러리 온 마음으로 예입니다.

기 때문에 매우 중요한 부분의 플라이급하는 공동 구현을 변경할 수 없고,좋은 후보에서 데이터 기반의 응용 프로그램이 무엇인 도메인 중심 디자인값을 객체 -하지만 그것에만 관련된 경우가 많은 동일한 값입니다.

DB 남자가 아니므로 이것이 내 최선의 추측입니다

플라이급 패턴에 대한 실제 보너스는 필요한 경우 데이터를 재사용 할 수 있다는 것입니다. 또 다른 예는 이상적으로 문서에 "문자"당 객체를 가질 수있는 단어 처리입니다. 그러나 Wuld는 너무 많은 메모리를 먹으므로 Flyweight 메모리를 사용하면 필요한 각 고유 한 값 중 하나만 저장할 수 있습니다.

그것을 보는 두 번째 (그리고 아마도 가장 단순한) 방법은 객체 풀링과 같으며, 당신은 "객체 당"레벨과 달리 "필드 당"레벨에 풀을 찍고 있습니다.

사실, 지금 생각하기 때문에 C (++)에 (비교적 작은) 메모리 덩어리를 사용하는 것과는 다릅니다.

[이 wikedia 기사를 참조하십시오].

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top