CDMA Project - PowerPoint PPT Presentation

About This Presentation
Title:

CDMA Project

Description:

Only this and nothing more.' Edgar Allen Poe, The Raven. The Visitor Design Pattern ... Houses with distinct characteristics ... – PowerPoint PPT presentation

Number of Views:95
Avg rating:3.0/5.0
Slides: 24
Provided by: ikbalho
Category:
Tags: cdma | project

less

Transcript and Presenter's Notes

Title: CDMA Project


1
The Visitor Design Pattern
"'Tis some visitor," I muttered, "tapping at my
chamber door Only this and nothing more."
Edgar Allen Poe, The Raven
2
Outline
Introduction Scenario 1 Scenario 2 Scenario
3 Conclusion Questions Answers
Ikbal R. Houssaini , ikbal_at_uchicago.edu
Jun Wu, wujunuc_at_hotmail.com
Last updated Sunday, Feb 17, 2002
3
Scenario 1
  • Homeowners Community

Houses with distinct characteristics
Different kind/level of maintenance and repairs
jobs required
4
Scenario 1

5
Scenario 1
6
Scenario 1
7
Scenario 1
8
Scenario 1
9
Introduction
  • Motivation
  • Can be used to provide an extension to an object
    hierarchy.
  • The Visitor abstract class defines methods which
    will be called whenever an instance of a Visitor
    is passed to an element in another hierarchy.
  • Element defines the base class for a hierarchy
    which knows how to deal with Visitors. The
    accept() method in the element takes an instance
    of a Visitor and calls its methods.

Solution The Visitor Pattern is used to represent
an operation to be performed on the elements of
an object structure. Visitors are great ways to
extend an existing class hierarchy.
Problem You need to add a new method to a
hierarchy of classes, but the act of adding it
will be painful or damaging to the design.
  • Purpose
  • behavioral focus is on interaction and
    responsibility distribution
  • Scope
  • object focus is on dynamic run-time
    relationships (assembly)

10
Introduction
11
Scenario 2
  • Hierarchy of modem objects

The base class has the generic methods common to
all modems
The derivatives represent the drivers for many
different modem manufacturers and types
You have a requirement to add a new method to the
hierarchy to configure the modem to work with the
Unix operating system
Source http//www.cuj.com/java/
12
Scenario 2
1 2 3 4
13
Scenario 2
1 2 3 4
14
Scenario 2
public interface Modem public void
dial(String pno) public void hangup() public
void send(char c) public char recv() public
void accept(ModemVisitor v) public
interface ModemVisitor public void
visit(HayesModem modem) public void
visit(MotModem modem) public void
visit(ErnieModem modem)
1 2 3 4
15
Scenario 2
public class HayesModem implements Modem
public void dial(String pno) public void
hangup() public void send(char c) public
char recv() return 0 public void
accept(ModemVisitor v) v.visit(this) String
configurationString null
1 2 3 4
16
Scenario 2
public class UnixModemConfigurator implements
ModemVisitor public void visit(HayesModem m)
m.configurationString "s14D3"
public void visit(MotModem m)
m.configurationValue 42
1 2 3 4
17
Scenario 3
  • Real world example in the telecom industry

Visitor used in Composite hierarchy.
18
Scenario 3
CP (Client)
Data Packet ....
1 2 3
DSA (Server)
19
Scenario 3
Connection
Container
RsrcPool 1
RsrcPool 2
RsrcPool 3
ElemPool 1
ElemPool 2
ElemPool 3
1 2 3
Rsrc
Rsrc
Rsrc
Rsrc
Rsrc
Elem3
Elem1
Elem2
Elem3
Elem1
20
Scenario 3
Connection
Container
Visitor
ElemPool 1
ElemPool 2
ElemPool 3
Op 2
Op 1
1 2 3
Rsrc
Rsrc
Rsrc
Rsrc
Rsrc
Elem3
Elem1
Elem2
Elem3
Elem1
21
Scenario 3
Container accept(visitor1)
Visitor 1 visit(elemPool1) op1()
visit(elemPool2) op2() visit(elem2)
op3()
Visitor 2 visit(elemPool1) op4()
visit(elem1) op5()
ElemPool 1 accept(visitor1) visit(this)
ElemPool 2 accept(visitor1) visit(this)
1 2 3
Elem1 accept(visitor1) visit(this)
Elem2 accept(visitor1) visit(this)
22
End





Conclusion
Conclusion
  • PROS
  • Multi-Dispatch capability
  • New operations easy to add.
  • Gathers related operations into one place.
  • Visiting across hierarchies is easy.
  • Weakness
  • Adding Element classes is hard
  • May force more features into the public interface
    than is desirable.


A related pattern Interpreter - distribute code
over class Hierarchy Vs. Visitor - centralize
code in single class
23

Q
Write a Comment
User Comments (0)
About PowerShow.com