Wednesday, June 06, 2007

In software development, a  design Pattern describes a general solution to a design problem that recurs repeatedly in many projects. Software designers adapt the Pattern solution to their specific project. Patterns use a formal approach to describing a design problem, its proposed solution, and any other factors that might affect the problem or the solution. A successful Pattern should have established itself as leading to a good solution in three previous projects or situations.

Here are 3 categories of the Patterns involved in software designing...

1) Creational Patterns

  • Abstract factory pattern: centralize decision of what factory to instantiate
  • Factory method pattern: centralize creation of an object of a specific type choosing one of several implementations
  • Anonymous subroutine objects pattern
  • Builder pattern: separate the construction of a complex object from its representation
  • Lazy initialization pattern: tactic of delaying the creation of an object, the calculation of a value, or some other expensive process until the needed first time
  • Prototype pattern: used when the inherent cost of creating a new object in the standard way (e.g., using the 'new' keyword) is prohibitively expensive 
  • Singleton pattern: restrict instantiation of a class to one object

    2) Structural Patterns

  • Adapter pattern: 'adapts' one interface for a class into one that a client expects
  • Composite pattern: a tree structure of objects where every object has the same interface
  • Aggregate pattern: a version of the Composite pattern with methods for aggregation of children
  • Bridge pattern: decouple an abstraction from its implementation so that the two can vary independently
  • Container pattern: create objects for the sole purpose of holding other objects and managing them
  • Decorator pattern: add additional functionality to a class at run time where subclassing would result in an exponential rise of new classes
  • Extensibility pattern: aka. Framework - hide complex code behind a simple interface
  • Facade pattern: create a simplified interface of an existing interface to ease usage for common tasks
  • Flyweight pattern: a high quantity of objects share a common properties object to save space
  • Proxy pattern: a class functioning as an interface to another thing
  • Pipes and filters: a chain of processes where the output of each process is the input of the next
  • Private class data pattern: restrict accessor/mutator access

    3) Behavioral Patterns

  • Chain of responsibility pattern: Command objects are handled or passed on to other objects by logic-containing processing objects
  • Command pattern: Command objects encapsulate an action and its parameters
  • Interpreter pattern:  Implement a specialized computer language to rapidly solve a specific set of problems
  • Iterator pattern: Iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation
  • Mediator pattern: Provides a unified interface to a set of interfaces in a subsystem
  • Memento pattern: Provides the ability to restore an object to its previous state (rollback)
  • Observer pattern: aka Publish/Subscribe or Event Listener. Objects register to observe an event which may be raised by another object
  • State pattern: A clean way for an object to partially change its type at run time
  • Strategy pattern: Algorithms can be selected on the fly
  • Template method pattern: Describes the program skeleton of a program
  • Visitor pattern: A way to separate an algorithm from an object
  • Single-serving visitor pattern: Optimise the implementation of a visitor that is allocated, used only once, and then deleted
  • Hierarchical visitor pattern: Provide a way to visit every node in a hierarchical data structure such as a tree

    Look for subsequent posts for clarification of each one from C# point of view...

    Cheers!!!

  • posted on Wednesday, June 06, 2007 4:09:07 PM (Central Standard Time, UTC-06:00)  #    Comments [1] Trackback
    Related posts:
    DNN Upgrade to 4.5.3 and dasblog (virtual directory) crashing...
    About .Net Framework 3.0
    Nice article on Asp.Net optimization
    Integrated ERP software uses Microsoft.NET
    Embedded database supports C#, .NET Compact Framework
    Stop Hijacking my Browser!
    Tracked by:
    http://freewebs.com/aspxfaq/15/sitemap10.html [Pingback]
    http://freewebs.com/toltom/07/sitemap7.html [Pingback]
    http://freewebs.com/toltom/16/culinary-arts-schools.html [Pingback]
    http://freewebs.com/toltom/01/sitemap5.html [Pingback]
    http://freewebs.com/toltom/13/national-city-bank-louisville-ky.html [Pingback]
    http://kevruublog.tripod.com/32.html [Pingback]
    http://kevruublog.tripod.com/105.html [Pingback]
    http://rma7dj.org/sitemap49.html [Pingback]
    http://tlem3v.org/pre-teen-bikini-modeling.html [Pingback]
    http://topslots.nl.eu.org/00/sitemap14.html [Pingback]
    http://freewebs.com/amexa/30/ebooks.html [Pingback]
    http://freewebs.com/amexa/39/nightly-business-report.html [Pingback]
    http://freewebs.com/amexa/21/lobster-bisque.html [Pingback]
    http://pinofranc.homestead.com/04/pawn-shops.html [Pingback]
    http://pinofranc.homestead.com/05/fundraising.html [Pingback]
    http://pinofranc.homestead.com/05/call-girls.html [Pingback]
    http://xom6u-xxx.com/sitemap9.html [Pingback]
    http://o4bwn-www.com/teens-model-topless.html [Pingback]
    http://freewebs.com/madfeenews/172.html [Pingback]
    http://nabkoonews.tripod.com/170.html [Pingback]
    http://vaztuunews.tripod.com/84.html [Pingback]
    http://iepgq-ooo.com/high-school-cock.html [Pingback]
    http://zelkuunews.tripod.com/159.html [Pingback]
    http://chg6x-hhh.com/gay-lycra-spandex.html [Pingback]
    http://zozpz-xxx.biz/slave-girl-jungle.html [Pingback]
    http://naidu-www.biz/sitemap4.html [Pingback]
    http://oqwos-eee.com/wet-wives-sex-older.html [Pingback]
    http://freewebs.com/amexa/29/bingos.html [Pingback]
    http://freewebs.com/pentac/05/dsl-modem.html [Pingback]
    http://freewebs.com/retuv/14/federal-stafford-loans.html [Pingback]
    http://freewebs.com/tiltak/04/titan.html [Pingback]
    http://freewebs.com/tiltak/04/elliott.html [Pingback]
    http://v8kmg-rrr.com/girls-butt-in-tight-jeans.html [Pingback]
    http://unibetkom.extra.hu/0051-blog.html [Pingback]
    http://ramambo.nl.eu.org/08/commerceonlinebanking.html [Pingback]
    http://harum.nl.eu.org/joanns-com.html [Pingback]
    http://harum.nl.eu.org/newgals.html [Pingback]
    http://wevcjxy.biz/nofx-bass-tabs.html [Pingback]
    http://voretom.nl.eu.org/nylon-fetish.html [Pingback]
    http://xw6t8yk.com/girls-of-penthouse.html [Pingback]
    http://shadokom.nl.eu.org/address-directory.html [Pingback]
    http://alo--fokom.nl.eu.org/sitemap61.html [Pingback]
    http://freewebs.com/gabeganews/43.html [Pingback]
    http://qwe--blog.nl.eu.org/iraq-sex.html [Pingback]
    http://drbutqt.com/www-woodsidegroupinc-com.html [Pingback]
    http://albldh9.biz/ebay-express.html [Pingback]
    http://coppohq.biz/sitemap56.html [Pingback]
    http://nasferablog.netfirms.com/577.html [Pingback]
    http://cq7t5nv.biz/www-commerceonline-com.html [Pingback]
    http://nasferablog.netfirms.com/594.html [Pingback]
    http://fto--kom.nl.eu.org/2006-ncaa-tournament.html [Pingback]
    http://xgldagn.biz/budget-living-magazine.html [Pingback]
    "Homes For Sale" (Construction New Home For Sale) [Trackback]