seen in the referer logs – ned gulley has a nice weblog called paracelsus rambles that has a little bit of everything, including Non-Software Examples of Software Design Patterns, which is perfect for those occasions when you’ve got to put things in terms your grandma can understand:
“Software design patterns have roots in the architectural patterns of Christopher Alexander, and in the object movement. According to Alexander, patterns repeat themselves, since they are a generic solution to a given system of forces. The object movement looks to the real world for insights into modeling software relationships. With these dual roots, it seems reasonable that software design patterns should be repeated in real world objects. This paper presents a real world, non software instance of each design pattern from the book, Design Patterns – Elements of Reusable Object-Oriented Software [13]. The paper also discusses the implications of non-software examples on the communicative power of a pattern language, and on design pattern training.”
while i’m on the topic of design patterns, onjava has a recent article on using jsp security for limiting access to application-internal URLs. if you don’t fall asleep while reading the article title, you’ll discover that it’s really about the merits of using a “state machine application architecture”:
“Some of you may remember the finite-state machine from your computer science or math classes. If you don’t, that’s OK — it is a very simple concept. A finite-state machine is a way of describing an application in terms of the states that the application may be in, the outputs that it displays, the inputs that it receives, and the ways in which it moves from state to state based on its current state and the inputs that it receives. Server-side Web applications are easily described in terms of a finite state machine. They start in a particular state, they receive a request from a user, they send a Web page to the user, and they move to a new state.”
in reality, the “state machine application architecture” is just a ruse for introducing you to the much more general “model-view-controller [mvc]” architecture, which provides more evidence that there really is nothing new under the sun. get it? sun? o.k. it’s a bad pun, since sun is pimping mvc as a mechanism for supporting a range of design patterns. that, and much, much more can be found in the weighty tome on the officially sanctioned j2ee blueprints programming model.
and the clever among you have probably already figured it out that this post is really just a complicated reminder for me to check out the struts framework:
“Welcome to the Struts Framework! The goal of this project
is to provide an open source framework useful in building web applications
with Java Servlet and
JavaServer Pages (JSP)
technology. Struts encourages application architectures based on the
Model-View-Controller (MVC) design paradigm, colloquially known as
Model 2 in discussions on various servlet and JSP related
mailing lists.Struts includes the following primary areas of functionality:
- A controller servlet that dispatches requests to appropriate
Action classes provided by the application
developer.- JSP custom tag libraries, and associated support in the controller
servlet, that assists developers in creating interactive form-based
applications.- Utility classes to support XML parsing, automatic population of
JavaBeans properties based on the Java reflection APIs, and
internationalization of prompts and messages.”