beanbinding (MVVM 패턴)을 광범위하게 사용하는 Java 프로젝트에서 GlazedLists를 사용하기 시작했습니다.공유 게시자 및 잠금에 대한 GlazedLists의 PluggableList 요구 사항 처리 방법
PluggableList를 사용하면 소스 목록을 표에 바인딩 한 다음 런타임에 소스 목록을 변경할 수 있습니다. 이 작업을 수행하려면 PluggableList가 소스와 잠금 및 플러 블러를 공유해야하므로 모든 소스 목록이 동일한 ListEventPublisher 및 ReadWriteLock을 공유해야합니다. 나는 잠재적 인 소스 목록을 소유하고있는 클래스에서 정적 게시자를 만들고이를 잠그고, 아래의 의사 코드와 같이 PluggableList뿐만 아니라 클래스의 모든 인스턴스 생성에서 정적 값을 사용하여 목록을 만듭니다.
public class ModelClass
{
final static EventList LIST = new BasicEventList();
final static ListEventPublisher LISTEVENTPUBLISHER = LIST.getPublisher();
final static ReadWriteLock READWRITELOCK = LIST.getReadWriteLock();
final EventList sourceList =
new BasicEventList(LISTEVENTPUBLISHER, READWRITELOCK);
}
public class UiControllerClass
{
final PluggableList pluggableList =
new PluggableList(ModelClass.LISTEVENTPUBLISHER, ModelClass.READWRITELOCK);
// ... call pluggableList.setSource(someSourceList)
}
나는이 두 문제가 :
(1) 나는 때문에 UiController의 구성 요소의 특정 요구 사항의 모델에서 결정을해야한다. 이것은 MVVM 패턴을 위반하는 것 같습니다.
(2) 공유 잠금은 매우 많고 자주 액세스하는 경우 목록의 성능에 잠재적으로 영향을 미칩니다. 공유 잠금은 모두 동일한 잠금을 공유하기 때문입니다. 각 목록은 서로에 대해 신경 쓰지 않고 독립적으로 작동 할 수 있어야합니다.
내가 잘못 설명할까요? ModelClass가 특수한 UiControllerClass 요구 사항을 알고 잠재적 인 성능이 저하되지 않으면 PluggableLists를 작동시키는 더 좋은 방법이 있습니까?