techfest design patterns

Post on 06-Dec-2014

1.752 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Design Patterns presentation from Houston Techfest 2010

TRANSCRIPT

Design Patterns

Claudio LassalaJonathan BirkholzHouston Techfest 2010

http://tinyurl.com/htf2010-patterns

Claudio Lassala Jonathan Birkholz

claudio@eps-software.comClaudioLassala.workpress.com@claudiolassalaEPS Software Corp

jb@chaione.comtheabsentmindedcoder.com

@rookieonewizardsofsmart.net

github.com/RookieOnebitbucket.org/rookieone

Chaione

EPS

As an attendee to this session, you are entitled to a free CODE subscription! www.codemag.com/subscribe/htf10

Software ProjectsConsultingTrainingPublishers of CODE Magazine

The .Net Knowledge Powerhouse

ChaioneStrategy and PlanningUser Experience DesignMobile SolutionsWeb Solutions

:url => snipr.com/virtualaltnet:website => www.virtualbrownbag.com:when => every Thursday from 12pm – 1pm

Where everyone can come talk and learn about software development

Learnsomething about design patterns

ApplyTeach

your knowledge at your day job

others what you have learned

Different Backgrounds

Same Problems

is the only constant in software development

Change

change in software is

time consuming expensive

failand is why projects

successful

best practicesif only there were some

on how to manage change so that our software projects can be

Design Patternsdescribe a concept or process on an abstract level. These patterns arose from repeated successful applications on how to design software to adapt to change

Design patterns also provide aconciseform of communication among professionals

Every song has structure…•Intros•Verses•Bridges•Choruses•Interludes

Ok… so…. I’m going to pretend to hand off the ball but really I am going to pass it. The hope is the defense will be confused for a few seconds so that can create an opening and one of you guys can get open

Play Action Pass?

meanwhile a well organized team is already running their play

More effective communication

If design patterns are known best practices why are there no frameworks or libraries for design patterns?

more about form and context than code

allegory of the cave

Object Oriented Programming

Abstraction

Encapsulation

Polymorphism

Inheritance

Principles

Program to interface, not to implementation

Strive for loosely coupled designs between objects that interact

Favor composition over inheritance

SOLIDPrinciples => form => design pattern

Cash Register

Learning through code is best

LOOK AT CODE

REFACTOR

Command Patternis a design pattern in which an object

is used to represent and encapsulate all the information needed to execute an operation at a later time

with commands you can also…

Queue

Log

Undo

commands in the form of a macro command thereby handling complexity through composition

command execution for future diagnosis of problems and bugs

more easily support

Experiences with Command PatternWhere the Command Pattern can be found in .Net

REFACTOR

Façade Patternprovides a unified interface to a set of interfaces in a subsystem. To put it simply, it makes the complex easy.

inside Claudio’s house

Too many remotes! Ugh!

subsystems facade

Ah… one remote to rule the all

Experiences with Façade PatternWhere the Façade Pattern can be found in .Net

REFACTOR

Observer Patterndefines a dependency between objects

so that when one object changes, dependent objects can be notified

Publishers + Subscribers = Observer Pattern

Stop Pestering…

Let subject call observers

actively querying state on subject

passive

Hollywood Principle

Don’t call us, we’ll call you.

Register

Scanner

add item

item scanned

Experiences with Observer PatternWhere the Observer Pattern can be found in .Net

REFACTOR

Adapter Patternconverts the interface of a class into another interface the clients expect

Experiences with Adapter PatternWhere the Adapter Pattern can be found in .Net

Facade Adapterintent

versus

Proxy Patternprovides a surrogate or placeholder for another object to control access to it.

Proxy Real

REFACTOR

Strategy Patterndefines a family of algorithms, encapsulates each one, and makes them interchangeable.

This lets the algorithm vary independently from clients that use it.

Texas

Lousiana

Oklahoma

Default

Switch

Texas

Lousiana

Oklahoma

Default

Strategies

King

Queen

Bishop

Rook

Knight

Pawn

how are they different?

Experiences with Strategy PatternWhere the Strategy Pattern can be found in .Net

REFACTOR

Factory Patternprovides an interface for creating families of related or dependent objects

Types of Factories

Factory Method

Factory Class

Abstract Factory

Experiences with Factory PatternWhere the Factory Pattern can be found in .Net

Other Patterns• Decorator• Mediator• Iterator• Builder• Composition• Visitor• Chain of Responsibility

Presentation Patterns• MVC• MVVM• MVP

Bookshelf

Questionshttp://tinyurl.com/htf2010-patterns

claudio@eps-software.comClaudioLassala.workpress.com@claudiolassalaEPS Software Corp

jb@chaione.comtheabsentmindedcoder.com

@rookieonewizardsofsmart.net

github.com/RookieOnebitbucket.org/rookieone

Chaione

Join us at www.VirtualBrownBag.com every Thursday 12pm -1pm

top related