patterns in a security alarm system (sas) agenda domain model domain model the patterns the patterns...

14
Patterns in a Patterns in a Security Alarm System (SAS) Security Alarm System (SAS) AGENDA AGENDA Domain Model Domain Model The Patterns The Patterns Iterator Iterator Observer Observer Abstract Factory Abstract Factory Singleton Singleton

Upload: nathanial-bourns

Post on 14-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

Patterns in a Patterns in a Security Alarm System (SAS)Security Alarm System (SAS)

AGENDAAGENDA

Domain ModelDomain Model The PatternsThe Patterns

– IteratorIterator– ObserverObserver– Abstract FactoryAbstract Factory– SingletonSingleton

Page 2: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

Observable Item

SensorObserves Triggers

Notifies

Room TempDoor Window

Break In Thermostat Motion Detector

Magnetic Switch Smoke Sensor

Open Event Temp EventBreak Event Smoke Event

Monitoring Co. Police OwnerFire

EVENT Attach(Observer)Detach(Observer)Notify()Trigger()

Monitoring Authority

Notify()

Security Alarm System (SAS)Domain Model

Page 3: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

ITERATOR PATTERN

Applicability Applicability

Access an aggregate object's Access an aggregate object's contents without exposing its contents without exposing its internal representation.internal representation.

Support multiple traversals of Support multiple traversals of aggregate objects. aggregate objects.

Page 4: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

ITERATOR PATTERN

Page 5: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

Abstract List CreateIterator()Count()AppendItem()RemoveItem()

ITERATOR PATTERN in SAS

Sensor List

Zone List

Sensor

Iterator

First()Next()IsDone()CurrentItem()

SensorIterator

ZoneIterator

Zone

Page 6: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

Applicability Applicability

When a change to one object requires When a change to one object requires changing others, and you don't know changing others, and you don't know how many objects need to be changed.how many objects need to be changed.

When an object should be able to notify When an object should be able to notify other objects without making other objects without making assumptions about which objects they assumptions about which objects they are. are.

OBSERVER PATTERN

Page 7: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

OBSERVER PATTERN

Page 8: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

EVENT Attach(Observer)Detach(Observer)Trigger()

OBSERVER PATTERN in SAS

Open Event Temp EventBreak Event Smoke Event

Monitoring Co. Police OwnerFire

observers

for all o in observers

o.Notify()

Monitoring Authority

Notify()

Page 9: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

Applicability Applicability

A system should be independent of A system should be independent of how its products are created, how its products are created, composed, and represented. composed, and represented.

A system should be configured with A system should be configured with one of multiple families of products.one of multiple families of products.

ABSTRACT FACTORY PATTERN

Page 10: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

ABSTRACT FACTORY PATTERN

Page 11: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

EVENT Attach(Observer)Detach(Observer)Trigger()

ABSTRACT FACTORY PATTERN in SAS

Open Event Temp EventBreak Event Smoke Event

Sensor

Break In Thermostat Motion Detector

Magnetic Switch Smoke Sensor

Sensor Factory CreateSensor()CreateEvent()

Door Sensor

Window Sensor

Page 12: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

Applicability Applicability

There must be exactly one instance There must be exactly one instance of a class, and it must be accessible of a class, and it must be accessible to clients from a well-known access to clients from a well-known access point. point.

SINGLETON PATTERN

Page 13: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

SINGLETON PATTERN

Page 14: Patterns in a Security Alarm System (SAS) AGENDA Domain Model Domain Model The Patterns The Patterns –Iterator –Observer –Abstract Factory –Singleton

SAS <<controller>>

static getInstance()

SINGLETON PATTERN in SAS

return myInstance

static myInstance