2011-11-09 3 views
2

개체의 속도를 제어하는 ​​JSlider가있는 작은 응용 프로그램을 만들었습니다. 슬라이더가 상태의 변화를 감지하면 객체의 속도가 적절하게 변경됩니다. 내가 만든 것이 옵서버 패턴을 활용했는지 궁금 해서요. Wikipedia는 "Observer Pattern"은 주체라고 불리는 객체가 관찰자라고 불리는 부양 가족의 목록을 유지하는 소프트웨어 디자인 패턴이며 대개 메소드 중 하나를 호출하여 상태 변화를 자동으로 알려주는 패턴입니다. 주로 분산 이벤트 처리 시스템을 구현하는 데 사용됩니다. " 내 코드 내에서, 때마다 JSlider에 변화가 자동 통해 객체의 속도를 변경하기 위해 실행되는 코드의 작은 조각을 발견 : 위키 백과 요구로 나는 그것이 부양의 목록을 유지 생각하지 않는다옵저버 패턴 이해

slider.addChangeListener(
      new ChangeListener(){ 
       public void stateChanged(ChangeEvent e){ 
        horizSpeed = slider.getValue(); 
        sliderTitle.setText("Current Speed: " + horizSpeed); 
       } 
      } 
    ); 

하지만, 나는 잘 모르겠다. Observer Pattern의 미묘함에 대해 누구나 나를 밝힐 수 있다면, 나는 그것을 크게 고맙게 생각할 것이다. 감사!

+3

종속성 목록이있는'slider'입니다. 하나의 항목 만 추가했습니다. – BalusC

답변

1

Slider주제하고 addChangeListener 부양 자사의 목록에 종속을 추가합니다. 이것은 관찰자 패턴의 전형적인 예입니다.

2

관찰자는 게시 - 구독으로도 알려져 있습니다. 그 이름은 좀 더 설명이 될 수 있습니다.

귀하는 현재 등록 된 클라이언트가 하나 뿐인 옵저버입니다. 다만, addChangeListener는 복수의 청취자를 등록 할 수 있습니다. 하이 엔드에있을 때 슬라이더의 색을 변경하려는 경우를 상상해보십시오. 당신은 속도를 바꾸지 말아야합니다.