Everything is achievable through technology

Design Patterns

Creational Patterns
  Abstract Factory Creates an instance of several families of classes
  Builder Separates object construction from its representation
  Factory Method Creates an instance of several derived classes
  Prototype A fully initialized instance to be copied or cloned
  Singleton A class of which only a single instance can exist
Structural Patterns
  Adapter Match interfaces of different classes
  Bridge Separates an object’s interface from its implementation
  Composite A tree structure of simple and composite objects
  Decorator Add responsibilities to objects dynamically
  Facade A single class that represents an entire subsystem
  Flyweight A fine-grained instance used for efficient sharing
  Proxy An object representing another object
Behavioral Patterns
  Chain of Resp. A way of passing a request between a chain of objects
  Command Encapsulate a command request as an object
  Interpreter A way to include language elements in a program
  Iterator Sequentially access the elements of a collection
  Mediator Defines simplified communication between classes
  Memento Capture and restore an object’s internal state
  Observer A way of notifying change to a number of classes
  State Alter an object’s behavior when its state changes
  Strategy Encapsulates an algorithm inside a class
  Template Method Defer the exact steps of an algorithm to a subclass
  Visitor Defines a new operation to a class without change