Terminology and Technology
However as I work more on my architecting and designing skills (another great example 'concise' terminology =p) I discovered that a factory is a specific type of 'software pattern'. First of, let's have some understanding on terminology. Architecting is the ability to create architecture (by the way, I do not know if it should be 'architecting' or 'architecturing'. Someone go search and let me know ah =D ). A software architecture defines a direction and objective for the piece of software being developed. The architecture will state if it's client-server, n-tier etc. It explains how the disparate parts of the system works together. Design on the other hand is a more detailed version. How the classes / modules are related, what do they do etc.
Well then, what are patterns? They are basic repeating software design elements which are used for certain scenarios under certain conditions. One well-known writing on this is the book Design Patterns : Elements of Reusable Object-Oriented Software. The four authors of this book (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) have been refered to frequently as the 'Gang of Four' (GoF). Therefore the patterns they described are also known as the 'Gang of Four patterns'.
Some interesting information from wikipedia:
- In Chinese history, the Gang of Four was a group of Communist politicians based in Shanghai. They were among the main leaders of the Cultural Revolution.
- In East Asian history, the Gang of Four (or the Asian Tigers) refers to South Korea, Taiwan, Singapore, and Hong Kong as newly industrialized countries with shared economic characteristics.
- In British history, the Gang of Four were the four leading members of the Labour PartySocial Democratic Party in 1981.
- In Australian politics, the Gang of Four was a term commonly used by the media to describe Democrat Senators Meg Lees, Andrew Murray, Aden Ridgeway, and John Cherry, after they controversially toppled party leader Natasha Stott Despoja.
- In Papua New Guinea, the Gang of Four were four prominent civil service chiefs who had significant influence over public policy in the years after independence was granted.
Hmm... I wonder if 'GoF' is a good name for this as some of it's related terminology denotes chaotic circumstances. So now, does having patterns assist or disrupts software development? There's an interesting question. ;-)
Anyhow, for more information, just search 'gang of four pattern' (without the single quotes of course) and there's plenty to read. Another quick and good introduction would be the site http://www.dofactory.com/Patterns/Patterns.aspx. If one is familiar with developing software, some of the patterns will seem extremely familiar. It would have been used and implemented before just the terminology that is 'new'. Again, terminology and technology. Don't quite mix properly for me.
=)