Skip to Content
Principles of Quantitative Development
book

Principles of Quantitative Development

by Manoj Thulasidas
August 2010
Beginner
251 pages
7h 20m
English
Wiley
Content preview from Principles of Quantitative Development

7.2 VISITOR PATTERN

The visitor pattern is popular in financial software designs for two of its features:

  1. It allows us to extend the functionality of classes without modifying their structure or interface.
  2. It provides a viable solution to the lack of double dispatch in common object-oriented languages like Java and C++, which provide only single dispatch through virtual functions. In single dispatch, the compiler chooses the right function at run-time using the dynamic type of calling object.

In order to give us the flexibility of adding new operations to classes, the visitor pattern lets us separate their structure from their algorithms. We then list the operations (algorithms) in an aggregate visitor class, declaring them as all pure virtual, so that we need to implement them in the classes we derive from it. For customized operations, we derive a concrete visitor from the abstract visitor class, which has a call accept() that takes the object this as its argument. Knowing the type of the caller (through the this argument) and the function (through the virtual function resolution), the accept() call simulates double dispatch. Moreover, the derived visitor class is under our control, giving us the freedom to add functionality as we see fit.

image

Figure 7.3 Visitor pattern as it applies to a trading platform. The UML diagram corresponds to the code listing below

As an example, we show ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Principles of Financial Engineering, 3rd Edition

Principles of Financial Engineering, 3rd Edition

Robert Kosowski, Salih N. Neftci
Quantitative Finance

Quantitative Finance

Maria C. Mariani, Ionut Florescu

Publisher Resources

ISBN: 9780470745700Purchase book