Software engineering is currently undergoing a radical paradigm shift away from monolithic stovepipe applications which are strongly tied to a particular platform. Key enabling technologies, such as Java and the Common Object Request Broker Architecture (CORBA) allow construction of newer systems from distributed objects and components, providing services seamlessly integrated across multiple platforms. Another exciting trend in the software engineering discipline is the use of patterns. Simply put, a pattern is rule which relates a recurring problem and a software configuration which resolves that problem together in a given context. The use of design patterns, Java, and CORBA offer distinct advantages to visualization tool developers, particularly in light of the extreme demands visualization tools place on existing computing platforms. Potential benefits include: tools capable of using distributed computing resources and data repositories the ability to add new functionality and GUIs at runtime, and the ability to develop cross-platform tools without rewriting large functional units and user interfaces. In this paper, we describe our use of design patterns for the development of distributed, cross-platform visualization systems. The visualization systems currently under development are built with Java and C++ components connected via CORBA middleware.