반응형

감시자 패턴(Observer Pattern) 4

[C#] 감시자 패턴(Observer Pattern) - 구현

21. 감시자 패턴(Observer Pattern) [그림] 감시자 패턴(Observer Pattern) 클래스 다이어그램 21.4 구현 감시자 패턴에 대한 예제 프로그램을 구현하는 순서는 Subject와 Picture, IUpdate와 각 뷰어, 데모 코드 순으로 하겠습니다. 21.4.1 Subject와 Picture Subject는 상태 변경이 있을 때 감시자에게 변경을 통보하는 역할을 담당합니다. 이를 위해 감시자를 등록하는 메서드와 해제하는 메서드를 구현해야 합니다. 그리고, 상태 변경이 있을 때 등록된 모든 감시자들에게 변경된 사실을 통보를 하는 메서드도 구현합시다. Picture.cs using System; namespace Observer { class Picture:Subject { pu..

[C#] 감시자 패턴(Observer Pattern) - 설계(Design)

21. 감시자 패턴(Observer Pattern) 21. 3 디자인 감시자 패턴에 대한 설명을 위한 예제로 사용할 프로그램은 사진을 보정하는 응용을 소재로 하겠습니다. 응용에는 사진 개체를 보정을 하면 이에 대한 색조, 명도, 채도를 나태내는 뷰어로 구성을 하려고 합니다. 만약, 사진 개체의 정보가 변경되면 각 뷰어는 이에 대한 변경 통보를 받아 화면에 변경된 값을 보여줄 것입니다. 만약, 감시자 패턴을 적용하지 않는다면 사진 개체는 각 뷰어에게 변경 통보를 해야 하고 각 뷰어는 이를 화면에 나타내야 하기 때문에 의존 관계에 있게 됩니다. 이 경우에 사진 개체는 다른 뷰어와 결합도가 강해 유연성이 떨어지게 됩니다. 여기에서는 사진과 같이 자신의 상태를 다른 개체에게 통보해야 하는 형식들의 추상 클래스 ..

[C#] 감시자 패턴(Observer Pattern) - 개요, 시나리오

21. 감시자 패턴(Observer Pattern) 21.1 개요 감시자 패턴은 하나의 개체가 여러 개체의 상태의 변화를 감지하는 역할을 담당하게 하는 패턴입니다. 특정 개체의 상태가 바뀌게 되었을 때 이를 반영해야 하는 개체가 여러 개가 있을 수 있습니다. 이 경우에 다른 개체의 상태가 바뀌었을 때 자신도 변화를 갖어야 하기 때문에 결합도가 강하여 유연하게 프로그래밍 하기 힘들어집니다. 이 경우에 감시자 패턴을 사용을 하면 결합도를 느슨하게 하여 유연한 프로그래밍을 할 수 있게 해 줍니다. 감시자 패턴에서는 감시자는 다른 개체의 상태의 변화를 통보를 받는 역할과 이 변화를 구독하기를 원하는 개체에게 알려주는 역할을 합니다. 이를 위해 감시자 개체는 상태의 변화가 발생하는 주 개체에게 상태 변화에 대한 ..

[소프트웨어 패턴 C#] 21.감시자 패턴(Observer Pattern)

21. 감시자 패턴(Observer Pattern) 감시자 패턴은 하나의 개체가 여러 개체의 상태의 변화를 감지하는 역할을 담당하게 하는 패턴입니다. 특정 개체의 상태가 바뀌게 되었을 때 이를 반영해야 하는 개체가 여러 개가 있을 수 있습니다. 이 경우에 다른 개체의 상태가 바뀌었을 때 자신도 변화를 갖어야 하기 때문에 결합도가 강하여 유연하게 프로그래밍 하기 힘들어집니다. 이 경우에 감시자 패턴을 사용을 하면 결합도를 느슨하게 하여 유연한 프로그래밍을 할 수 있게 해 줍니다. 감시자 패턴에서는 감시자는 다른 개체의 상태의 변화를 통보를 받는 역할과 이 변화를 구독하기를 원하는 개체에게 알려주는 역할을 합니다. 이를 위해 감시자 개체는 상태의 변화가 발생하는 주 개체에게 상태 변화에 대한 통보를 해 줄 ..

반응형