Date: 2004-02-27T13:18:02
   Editor: AaronFarr <[EMAIL PROTECTED]>
   Wiki: Apache Avalon Wiki
   Page: WhatIsIoC
   URL: http://wiki.apache.org/avalon/WhatIsIoC

   no comment

Change Log:

------------------------------------------------------------------------------
@@ -4,9 +4,19 @@
 
 == Design Patterns ==
 
-Before we discuss Inversion of Control, we first need to discuss '''Design 
Patterns.'''  Design Patterns are programming "best practices" -- common concepts 
which can be reused in a myriad of solutions.  
+Before we discuss Inversion of Control, we first need to discuss 
'''[http://c2.com/cgi/wiki?DesignPatterns Design Patterns].'''  Design Patterns are 
programming "best practices" -- common concepts which can be reused in a myriad of 
solutions:
 
-=== History of IoC ===
+''Each pattern describes a problem which occurs over and over again in our 
environment, and then describes the core of the solution to that problem, in such a 
way that you can use this solution a million times over, without ever doing it the 
same way twice.'' -- Christopher Alexander
+
+Examples of design patterns includes the Observer pattern, the Singleton pattern, and 
Model View Controller (MVC) architecture.  Interestingly enough, Inversion of Control 
''isn't'' really a design pattern (see 
[http://www.betaversion.org/~stefano/linotype/news/38/ Stefano's thoughts]), but more 
of a general principle or set of design patterns.  The goal of IoC is to isolate 
control.  This involves using many other design patterns and principles such as:
+
+ * Seperation of Concerns
+ * Interface Driven Design
+ * Dependency Management (via Dependency Injection or Service Lookup)
+ * Lifecycle Management
+ * Component Oriented Programming
+
+Inversion of Control originated as 
''[http://www.betaversion.org/~stefano/linotype/news/42/ The Hollywood Principle]'': 
"don't call us, we'll call you."  Under this premice, objects 
 
 == What Are We Trying Invert ==
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to