The is a reference page for applying development techniques. These are all general purpose and not language or framework specific.
Chronologically
First Meeting (Tuesday, March 04, 2008)
- Dependency injection (DI)
Second Meeting (Tuesday, March 11, 2008)
- Layered Architecture
Third Meeting (Tuesday, March 24, 2008)
- ...
By Category
Concepts
- Inversion of control (IoC): The control flow is inverted compared to the traditional interaction model expressed by a series of procedure calls. Informally, inversion of control can be briefly summarized with the Hollywood principle.
- Polymorphism: ...
Patterns
- Constructor injection: ...
- Factory: ...
- Interface injection: ...
- Repository: ...
- Service Locator: ...
- Setter injection: ...
- Strategy: ...
- Template methd: ...
- Visitor: ...
Principles
- Dependency inversion (DIP): "Invert" the conventional notion that high level modules in applications should depend upon the lower level modules. Neither high level nor low level modules should depend upon each other; instead they should depend upon abstractions.
- Hollywood: "Don't call us, we'll call you."
- Open/closed (OCP): Application entities should be open for extension, but closed for modificaction. An entity can allow its behavior to be modified without altering its source code.
- Single responsibility (SRP): There should never be more than one reason for a class to change.
Processes
- Dependency injection (DI): Supplying an external dependency to a software component and is a specific form of inversion of control where the concern being inverted is the process of obtaining the needed dependency.
- Encapsulation: Enclosing application elements inside larger, more abstract entities.
- Seperation of concerns (SoC): Breaking an application into distinct features that overlap in functionality as little as possible. Traditionally achieved through modularity and encapsulation with the help of information hiding.
Properties
- Modularity: Measures the extent to which applications have been composed out of seperate parts called modules.
By Hierarchy
Inversion of control (IoC)
- Dependency injection (DI)
- Constructor injection
- Setter injection
- Interface injection
- Service Locator
Open/closed (OCP)
- Strategy
- Template method
Tell, Don’t Ask paradigm: Prefers that objectA tells objectB to do something, rather than asking objectB about its state so that objectA can make a decision.
Information Hiding: The hiding of design decisions in an application that are most likely to change, thus protecting other parts of the application from change if the design decision is changed. Manifests itself in a number of ways, including encapsulation (given the seperation of concerns) and polymorphism.