LabVIEW Development Best Practices Blog

Community Browser
Showing results for 
Search instead for 
Did you mean: 

LabVIEW Object-Oriented Design Patterns

Active Participant

Object-oriented programming in LabVIEW (aka LVOOP) has become a very popular solution for complex applications that need elegant and scalable architectures.  For those of you who are new to object-orientation, I would highly recommend the new NI Customer Education class, Object-Oriented Design and Programming in LabVIEW (which just became available in 2011).  You might also check out an old blog entry I wrote to provide a very basic overview of how classes can be used, When Should You Use LabVIEW Classes?

For those of you who are either familiar with text-based design patterns, or who are familiar with LVOOP and interested in getting your hands on more sophisticated examples, I want to highlight and promote some new examples that have been posted to this Large Application community.  Aristos Queue wrote an early draft of this document, Applying Common OO Design Patterns to LabVIEW, which has since been expanded on and added to with the help of individuals from the systems engineering group at NI.  The design patterns in this book are largely adapted from the examples put together by The-Gang-of-Four in 1995, which wrote 'Design Patterns by Gamma, Helm, Johnson and Vlissides.' 

As of 1/7/11 we have posted ten different examples that you can download and begin using.  Each of the documents carefully explains when and when you'd want to use one of the patterns.  If you're interested, please review the examples and let us know what you think and if you have any questions or ideas.  I'd also like to put a challenge out the community to post alternative examples and even add new patterns from the original 1995 text.

Happy new year fellow wire-workers!


PS: We are also working on codifying examples of hardware abstraction layers (HALs) built on LabVIEW classes.  More on that soon.

Elijah Kerry
Chief Product Manager, Software Platform
Follow my Software Engineering for LabVIEW Blog