This project describes and discusses the concepts of design patterns giving a historical background as well as citing contributions to the software development field and current research efforts. In addition, the advantages and disadvantages of using design patterns and efforts to encourage design pattern usage in software organizations are discussed. Seven design patterns (Builder, Adapter, Composite, Template Method, Facade, Mediator and Strategy) were chosen as the basis for example concrete applications. The concrete applications are given in the form of design documentation, source code and executable software. The applications demonstrate the use of design patterns in developing object oriented software applications. The applications are implemented in the Java programming language. The Java programming language was used because it is a popular object oriented programming language. An aspect of its popularity comes from its ability to execute with Java enabled browsers on a variety of computing platforms. Noted researchers in the area of design patterns assert that design patterns are language independent, however, much of the implementation in the area of design patterns has been written in the C++ language. The contribution of this project lies in implementing selected design patterns in Java and noting experiences that support or refute the conjecture that design patterns are language independent.

Library of Congress Subject Headings

Computer software--Development; Java (Computer program language)

Publication Date


Document Type


Department, Program, or Center

Computer Engineering (KGCOE)


Czernikowski, Roy

Advisor/Committee Member

Shank, Charles


Note: imported from RIT’s Digital Media Library running on DSpace to RIT Scholar Works. Physical copy available through RIT's The Wallace Library at: QA76.76.D47 B87 1998


RIT – Main Campus