Design Patterns and Refactoring - Introduction - an der HTWG ...
Recommend Documents
Structural patterns describe how to compose classes (incl. interfaces) and objects
... How to make legacy class Toy look as if it had type Colored? custom class.
Programm „BKI Kostenplaner“ erstellt werden. 6. Marktbeobachtung. Die
Studierenden beobachten den Verlauf der Zinsen, Aktien, Rohstoffe, Öl,. Fonds
über ...
Jan 25, 2014 ... Me. ▷ Working at Qafoo. We promote high quality code with trainings and
consulting http://qafoo.com. ▷ Doctrine Developer. ▷ Symfony ...
Refactoring Software Using Design Patterns. Masatomo Noborikawa. Under the
direction of Dr. Eugene Wallingford. Research Project for Masters of Science in ...
Show by example how patterns & frameworks can help to. • Codify good ... Most
powerful reuse combines design & code reuse ... Solution (both visual & textual.
Design patterns has been used very effectively in object-oriented de- sign for a long time. ... design patterns and refactoring rules are used in a formal method by formulating and showing them as ...... Java, or Visual C#.Net, etc. In the initial ..
Oscar Nierstrasz. ST — Refactoring and Design Patterns. 8.3. Roadmap. > Some
Principles. > What is Refactoring? > The Law of Demeter. > Common Code ...
Bernese Oberland area of Switzerland used these patterns: North South Axis.
West Facing .... Applying UML and Patterns, by Craig Larman. 2002. Published
by ...
Grundlage hierfür ist die VOB/C, die allgemeinen technischen.
Vertragsbedingungen für Bauleistungen (ATV). ATV´s gibt es für jeden
Leistungsbereich;.
Sep 23, 2013 ... About Qafoo. Helping people to create high quality web applications. http://qafoo.
com. @qafoo. ▷ Trainings. ▷ Consulting. ▷ Tools ...
Design Patterns: Elements of Reusable. Object-Oriented Software, Addison–
Wesley, 1994, ISBN. 78-0201633610. ‣ Elisabeth Freeman et al. Head First
Design ...
Refactoring to Patterns. I would like to thank everyone who has downloaded the
manuscript and provided feedback. Addison Wesley will publish the book in ...
Refactoring To Patterns version 1.13. Joshua Kerievsky joshua@industriallogic.
com. Industrial Logic, Inc. http://industriallogic.com ...
Refactoring To Patterns version 0.17. Joshua Kerievsky joshua@industriallogic.
com. Industrial Logic, Inc. http://industriallogic.com ...
Design Patterns (III) and Refactoring. 1. Visitor Pattern. Problem. Sometimes the
set of classes in a hierarchy has become well de- fined and fixed, but the set of ...
An Introduction to Network Stack Design using Software. Design Patterns. Patrick Phelan, Zohra Boudjemil, Miguel Ponce de Leon, Sven van der Meer.
Origin of Design Patterns. GoF's Book: A catalog. Design Patterns: Elements of
Reusable Object-Oriented. Software (Gamma, Helm, Johnson, Vlissides).
propriately adapted so as to be reused in other application contexts. Very often, this kind of maintenance activities requires a very high cost effort, in the sense ...
Patterns will be described using UML 2.0 and ... UML 2.0 Notation: Class
diagram, interaction diagrams, package diagrams, and ... UML Distilled 3rd ed.
intervention only for custom DPs. Given a ... that happen during the software development. DPs describe a given .... Method createAspect() creates a custom aspect for the .... Processing, Workshops and Phd Forum (IPDPSW), Atlanta, Georgia,.
Application Refactoring with Design Patterns. Mark Tabladillo, Ph.D., Atlanta, GA.
ABSTRACT. This presentation will describe the object-oriented substructure.
Automated Application of Design Patterns: A Refactoring Approach. A thesis
submitted to the. University of Dublin, Trinity College, for the degree of. Doctor of
...
Dynamic Object-Oriented Programming with Smalltalk. HS 2009. Prof. O.
Nierstrasz. David Röthlisberger, Timur Altun. 8. Best Practice Patterns and
Refactoring.
For making it easy to perform such refactor- ing, a lot of refactoring patterns are
proposed. Each refac- toring pattern includes a description of refactoring oppor-.
Design Patterns and Refactoring - Introduction - an der HTWG ...
Design Patterns and Refactoring. Introduction. Oliver Haase. HTWG Konstanz.
Oliver Haase (HTWG Konstanz). Design Patterns and Refactoring. 1 / 9 ...
Design Patterns and Refactoring Introduction Oliver Haase HTWG Konstanz
Oliver Haase (HTWG Konstanz)
Design Patterns and Refactoring
1/9
Literature Design Patterns Erich Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software 1 , Addison–Wesley, 1994, ISBN 78-0201633610. Elisabeth Freeman et al. Head First Design Patterns, O’Reilly, 2004, ISBN 978-0596007126. Refactoring Martin Fowler et al. Refactoring: Improving the Design of Existing Code, Addison–Wesley, 1999, ISBN 978-0201485677.
1 The bible for design patterns. The authors are widely knows as the Gang of Four (GoF), their patterns as GoF patterns. Oliver Haase (HTWG Konstanz)
Design Patterns and Refactoring
2/9
Design Patterns — Definition Design Pattern: “Each [design] pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem” — Christopher Alexander, 1977. Christopher Alexander : born 1936 in Vienna studied mathematics and architecture (Cambridge) received PhD in architecture (Harvard) professor for architecture (UoC, Berkeley) known as the founder of design patterns
Oliver Haase (HTWG Konstanz)
Design Patterns and Refactoring
3/9
Design Patterns — Goals
Oliver Haase (HTWG Konstanz)
Design Patterns and Refactoring
4/9
Design Patterns — Goals
fast to develop, clean solution through solution reuse simplified maintenance through clean structures and deja vu effects improved extensibility through anticipatory design (partly) opportunity for code generation or language support (e.g. singleton pattern) (partly) opportunity for class libraries (e.g. observer pattern) “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler.
Oliver Haase (HTWG Konstanz)
Design Patterns and Refactoring
4/9
Design Patterns — Principles of Reusable Design According to GoF, there are two fundamental principles of reusable software design (that also underly most if not all patterns):
Principle of reusable software design Program against an interface, not an implementation.
2nd principle of reusable software design Prefer composition over inheritance. “Computer Science is the discipline that believes all problems can be solved with one more layer of indirection.” — Dennis DeBruler.
Oliver Haase (HTWG Konstanz)
Design Patterns and Refactoring
5/9
Design Patterns — Principles of Reusable Design
Key motivation behind both design principles:
Holy Grail of reusable software design Avoid code dependencies to the largest extent possible.
Oliver Haase (HTWG Konstanz)
Design Patterns and Refactoring
6/9
Design Patterns — Categorization
GoF categorize design patterns based on two criteria: 1
Purpose creational: patterns for object creation structural: patterns that compose classes and objects behavioral: patterns that distribute responsibility for behavior across classes and objects, and make them interact
2
Scope class based: based on relationships between classes, mainly inheritance object based: based on relationships between objects