Hi,
I agree that design patterns are important part of Object Oriented Programming as they provide an elegant way of getting around a programming problem that often occurs. LabVOOP is a new object-flow programming language with many distictions to traditional text-baset OOP programming languages. Especially it's a by-value OOP programming language that doesn't allow object references. Furthermore LabVOOP doesn't allow recursively calling dynamic class methods. In addition LabVOOP doesn't have built-in mechanisms for user-defined object initialization, object copying and object cleanup. These restrictions put LabVOOP into very different position compared to traditional OOP languages. Indeed many tasks that are trivial in traditional programming languages are quite hard to implement in LabVOOP.
Due to the above mentioned LabVOOP restrictions I think the LabVIEW community would need special LabVOOP specific design patterns more than these general OOP design patterns. These patterns would be trivial to implement in OOP languages but are far from trivial in LabVOOP. There should be design pattern for at least the following things
- initializing an object that needs initialization, and whose ancestor objects also need initialization
- forcing initialization so that object always represents something meaningful
- creating copies of objects that refer to files or other real world objects
- cleaning up hierarchical structures such as object hierarchy representing file system with references to open files (this is very difficult in general because recursive calls are not allowed)
- modifying hierarchical structures such as object hierarchy representing file system, how to modify an object somewhere deep in the hierarchy such as renaming a file C:\mydir\myfile to C:\mydir\mynew_file
- representing graphs using object hierarchies (naturally by-value hierarchies form trees, not graphs)
See LAVA forum (http://www.lavag.org) GOOP subforum for more detailed examples of the above mentioned programming problems. By the time I was writing this, LAVA forum web site was down, my appologies that I cannot directly link to relevant threads.
--
Tomi Maila