Java Technologies. Lecture III. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics
|
|
- Marsha Ramsey
- 5 years ago
- Views:
Transcription
1 Preparation of the material was supported by the project Increasing Internationality in Study Programs of the Department of Computer Science II, project number VP1 2.2 ŠMM-07-K , funded by The European Social Fund Agency and the Government of Lithuania. Java Technologies Lecture III Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics Valdas Rapševičius. Java Technologies 1
2 Session Outline To gain the good understanding of Gang of Four patterns Creational Structural Behavioral To familiarize you with the concept of evil of dependencies and the techniques on how it can be broken ServiceLocator pattern Dependency Injection (DI) pattern Valdas Rapševičius. Java Technologies 2
3 Design Patterns Introduced by Christopher Alexander in the 1970s Design pattern is a certain solutions that can be applied over and over again to the same or similar problems. In 1994 Erich Gamma, Richard Helm, John Vlissides, and Ralph Johnson published the now-famous book Design Patterns: Elements of Reusable Object- Oriented Software, which described a way of documenting patterns that has become the industry standard. These men are often referred to as the Gang of Four (GoF). The GoF patterns are categorized into three categories, as follows: Creational - support the creation of objects Structural - deal with relationships between portions of your application Behavioral - influence how state and behavior flow through the system Other patterns: Core J2EE Patterns (to be discussed in J2EE part) Other Java techniques Valdas Rapševičius. Java Technologies 3
4 GoF: Creational: Abstract Factory Client ProductA ProductB Factory +createproducta() : ProductA +createproductb() : ProductB ProductA1 Factory1 ProductB1 +createproducta() : ProductA +createproductb() : ProductB ProductA2 ProductB2 Factory2 +createproducta() : ProductA +createproductb() : ProductB Valdas Rapševičius. Java Technologies 4
5 GoF: Creational: Builder Client -builder «interface» Builder 1 +buildpart() +getproduct() : ProductA1 BuilderA1 ProductA1 +buildpart() +getproduct() : ProductA Valdas Rapševičius. Java Technologies 5
6 GoF: Creational: Factory Creator ProductA +create() : ProductA +otheroperation() Creator1 ProductA1 +creator() : ProductA Valdas Rapševičius. Java Technologies 6
7 GoF: Creational: Prototype Client -prototype Prototype 1 +clone() : Prototype Prototype1 Prototype2 +clone() : Prototype +clone() : Prototype Valdas Rapševičius. Java Technologies 7
8 GoF: Creational: Singleton Singleton -Singleton() +getinstance() : Singleton 1 -instance Valdas Rapševičius. Java Technologies 8
9 GoF: Structural: Adapter Client Adapter +request() Adapter1 -adaptee Adaptee +request() 1 +specificrequest() Valdas Rapševičius. Java Technologies 9
10 GoF: Structural: Bridge Client -impl Implementor 1 +operationimpl() Client1 Client2 Implementor1 Implementor2 +operationimpl() +operationimpl() Valdas Rapševičius. Java Technologies 10
11 GoF: Structural: Composite Client Component -child * Leaf Composite +add(in c : Composite) +remove(in i : int) +getchild(in i : int) : Composite Valdas Rapševičius. Java Technologies 11
12 GoF: Structural: Decorator Component -component 1 Component1 Decorator Decorator1 -addedstate : string Decorator2 +addedbehavior() Valdas Rapševičius. Java Technologies 12
13 GoF: Structural: Facade Client Facade Class1 Class3 Class2 Class Valdas Rapševičius. Java Technologies 13
14 GoF: Structural: FlyWeight Client FlyWeightFactory -flyweights FlyWeight * FlyWeight1 FlyWeight Valdas Rapševičius. Java Technologies 14
15 GoF: Structural: Proxy Client Proxy Proxy1 1 Proxy2 -proxy Valdas Rapševičius. Java Technologies 15
16 GoF: Behavioral: Chain of Responsibility Client CommandHandler -successor +handlerequest() 1 CommandHandler1 CommandHandler2 +handlerequest() +handlerequest() Valdas Rapševičius. Java Technologies 16
17 GoF: Behavioral: Command Client Invoker -command Command +invoke() 1 +execute() Command1 Command2 +execute() +execute() Receiver1 Receiver Valdas Rapševičius. Java Technologies 17
18 GoF: Behavioral: Interpreter Context Client Expression +interpret(in ctx : Context) -next 1 TerminalExpression NonTerminalExpression +interpret(in ctx : Context) +interpret(in ctx : Context) Valdas Rapševičius. Java Technologies 18
19 GoF: Behavioral: Iterator «interface» Aggregate +iterator() : Iterator Client «interface» Iterator +hasnext() : boolean +next() : Object SomeAggregator 1 SomeIterator +iterator() : SomeIterator -aggregate +hasnext() : boolean +next() : Object Valdas Rapševičius. Java Technologies 19
20 GoF: Behavioral: Mediator 1 -mediator Mediator -colleagues Colleague * ConcreteMediator Colleague01 Colleague Valdas Rapševičius. Java Technologies 20
21 GoF: Behavioral: Memento Originator Memento 1 Caretaker +setmemento(in m : Memento) +creatememento() +setstate() +getstate() : Object -memento Valdas Rapševičius. Java Technologies 21
22 GoF: Behavioral: Observer Subject +attach(in o : Observer) +detach(in o : Observer) +notify() +getstate() : Object -observers * -subject 1 +update() Observer ConcreteSubject ConcreteObserver +getstate() : Object +update() Valdas Rapševičius. Java Technologies 22
23 GoF: Behavioral: State StateContext +request() -handler 1 «interface» State +handle() ConcreteState1 ConcreteState2 +handle() +handle() Valdas Rapševičius. Java Technologies 23
24 GoF: Behavioral: Strategy StrategyContext -strategy Strategy +contextinterface() 1 +algorithminterface() ConcreteStrategy01 ConcreteStrategy02 ConcreteStrategy03 +algorithminterface() +algorithminterface() +algorithminterface() Valdas Rapševičius. Java Technologies 24
25 GoF: Behavioral: Template Algorithm +execute() #step01() #step02() ConcreteAlgorithm1 ConcreteAlgorithm2 +step01() +step02() +step01() +step02() Valdas Rapševičius. Java Technologies 25
26 GoF: Behavioral: Visitor Client «interface» Visitor +visit(in a : ElementA) +visit(in b : ElementB) Element +accept(in v : Visitor) ConcreteVisitor ElementA ElementB +visit(in a : ElementA) +visit(in b : ElementB) +accept(in v : Visitor) +accept(in v : Visitor) Valdas Rapševičius. Java Technologies 26
27 Fluent Builder pattern (1) public interface ObjBuilder<T> { T build(); public class Update { private final Author author; private final String updatetext; private Update(Builder b) { author = b.author; updatetext = b.updatetext; public static class Builder implements ObjBuilder<Update> { private Author author; private String updatetext; public Builder author(author author_) { author = author_; return this; public Builder updatetext(string updatetext_) { updatetext = updatetext_; return this; public Update build() { return new Update(this); Valdas Rapševičius. Java Technologies 27
28 Fluent Builder pattern (2) Update.Builder ub = new Update.Builder(); Update u = ub.author(myauthor).updatetext("hello").build(); // or Update u = new Update.Builder().updateText("Hello").build(); More about Fluent interface: Valdas Rapševičius. Java Technologies 28
29 Dependency problem class StudentFinder implements StudentFinder { private final StudentDao public Student findstudent(string name) { return class Course { private final StudentFinder finder; private final Collection<Student> students = new LinkedHashSet<>(); public void add(string name) { Student s = finder.findstudent(name); if (s!= null) students.add(s); Valdas Rapševičius. Java Technologies 29
30 Dependency problem (2) public class ProblemDemo { public static void main(string[] args) { StudentDao dao = new StudentDaoDatabase(); StudentFinder finder = new StudentFinder(dao); Course course = new Course(finder); course.add("martin Fowler"); course.add("bill Gates"); Valdas Rapševičius. Java Technologies 30
31 Service Locator (1): Simple class ServiceLocator { private static class Holder { public static final StudentDao dao = new StudentDaoDatabase(); public static final StudentFinder finder = new StudentFinder02(); public static StudentDao getdao() { return Holder.dao; public static StudentFinder getfinder() { return Holder.finder; class StudentFinder02 implements StudentFinder public Student findstudent(string name) { return ServiceLocator.getDao().get(name); Valdas Rapševičius. Java Technologies 31
32 Service Locator (2): Segregated Interface interface DaoLocator { StudentDao getdao(); interface FinderLocator { StudentFinder class ServiceLocator implements DaoLocator, FinderLocator { private static final ServiceLocator instance = new ServiceLocator(); private final StudentDao dao = new StudentDaoDatabase(); private final StudentFinder finder = new StudentFinder(); public static ServiceLocator getinstance() { return instance; DaoLocator daolocator = ServiceLocator.getInstance(); StudentDao dao = daolocator.getdao(); FinderLocator finderlocator = ServiceLocator.getInstance(); StudentFinder finder = finderlocator.getdao(); Valdas Rapševičius. Java Technologies 32
33 Service Locator (3): class ServiceLocator { private static final ServiceLocator instance = new ServiceLocator(); public static ServiceLocator getinstance() { return instance; private Map<String, Object> services = new HashMap<>(); public void load(string name, Object service) { services.put(name, service); public Object get(string name) { return services.get(name); ServiceLocator.getInstance().load("dao", new StudentDao()); StudentDao dao = (StudentDao) ServiceLocator.get("dao"); ServiceLocator.getInstance().load("finder", new StudentFinder()); StudentFinder finder = (StudentFinder) ServiceLocator.get("finder"); Valdas Rapševičius. Java Technologies 33
34 Dependency Injection (DI) Pattern Method to create needed dependencies or look them up somehow without doing it in the dependent code Often called Inversion of Control (IoC), known as Hollywood Principle IoC injects needed dependencies into the object instead Setters or Constructor Primary goal is reduction of dependencies in code an excellent goal in any case this is the central part of some J2EE, MVC and other frameworks More read Inversion of Control Containers and the Dependency Injection pattern by Martin Fowler Valdas Rapševičius. Java Technologies 34
35 DI frameworks Standards JSR-330 (Dependency Injection for Java) defines basic standard annotation and Provider interface JSR-299 (Java Contexts and Dependency Injection) is based on above, enhanced Reference implementation Guice Other frameworks to consider Spring PicoContainer Excalibur (former Avalon) Weld Valdas Rapševičius. Java Technologies 35
36 javax.inject Identifies injectable constructors, methods, and fields. public class Car { // Injectable public Car(Engine engine) {... // Injectable private Provider<Seat> seatprovider; // Injectable package-private void install(windshield windshield, Trunk trunk) Identifies qualifier annotations. Anyone can define a new String-based qualifier. public class Seat passengerseat; Valdas Rapševičius. Java Technologies 36
37 javax.inject Identifies scope annotations. A scope annotation applies to a class containing an injectable constructor and governs how the injector reuses instances of the Identifies a type that the injector only instantiates once. Not inherited. interface Provider<T> Provides instances of T. Typically implemented by an injector. For any type T that can be injected, you can also inject Provider<T>. class Car Car(Provider<Seat> seatprovider) { Seat driver = seatprovider.get(); Seat passenger = seatprovider.get(); Valdas Rapševičius. Java Technologies 37
38 DI example class RealService implements Service { private final CreditCardProcessor processor; private final TransactionLog RealService(CreditCardProcessor processor, TransactionLog transactionlog) { this.processor = processor; this.transactionlog = transactionlog;... public class BillingModule extends AbstractModule protected void configure() { bind(transactionlog.class).to(databasetransactionlog.class); bind(creditcardprocessor.class).to(paypalcreditcardprocessor.class); public static void main(string[] args) { Injector injector = Guice.createInjector(new BillingModule()); RealBillingService billingservice = injector.getinstance(realbillingservice.class); Valdas Rapševičius. Java Technologies 38
39 Session Conclusions During this session you should have learned how to organize your classes/objects to solve the repetitive and common problems by using patterns Need for patterns and proper understanding comes with time (experience) Consult numerous websites, books DI and IoC is a big heap in the programming world do not miss it out! Service Locator (aka Utility) is the first choice for many (beginners) Construct a complete application based on DI/IoC can be a challenge Valdas Rapševičius. Java Technologies 39
Appendix-A. A.1 Catalogues of Design Patterns. Below is the definition for each design pattern using the FINDER notation, followed
A Appendix-A A.1 Catalogues of Design Patterns Below is the definition for each design pattern using the FINDER notation, followed by a description of the rules. These definitions have been created using
More informationObject Oriented Methods with UML. Introduction to Design Patterns- Lecture 8
Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationBrief Note on Design Pattern
Brief Note on Design Pattern - By - Channu Kambalyal channuk@yahoo.com This note is based on the well-known book Design Patterns Elements of Reusable Object-Oriented Software by Erich Gamma et., al.,.
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationInformation systems modelling UML and service description languages
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Overview of design patterns for supporting information systems
More informationDesign Patterns. An introduction
Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at
More informationThe GoF Design Patterns Reference
The GoF Design Patterns Reference Version.0 / 0.0.07 / Printed.0.07 Copyright 0-07 wsdesign. All rights reserved. The GoF Design Patterns Reference ii Table of Contents Preface... viii I. Introduction....
More information2.1 Design Patterns and Architecture (continued)
MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Timed Automata
More informationDependency Injection & Design Principles Recap Reid Holmes
Material and some slide content from: - Krzysztof Czarnecki - Ian Sommerville - Head First Design Patterns Dependency Injection & Design Principles Recap Reid Holmes REID HOLMES - SE2: SOFTWARE DESIGN
More information2.1 Design Patterns and Architecture (continued)
MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Abstract
More informationDesign Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011
Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationTuesday, October 4. Announcements
Tuesday, October 4 Announcements www.singularsource.net Donate to my short story contest UCI Delta Sigma Pi Accepts business and ICS students See Facebook page for details Slide 2 1 Design Patterns Design
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationIntroduction and History
Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek September 15, 2016 Content /FHTenL September 15, 2016 2/28 The idea is quite old, although rather young in SE. Keep up a roof. /FHTenL
More informationDesign patterns. OOD Lecture 6
Design patterns OOD Lecture 6 Next lecture Monday, Oct 1, at 1:15 pm, in 1311 Remember that the poster sessions are in two days Thursday, Sep 27 1:15 or 3:15 pm (check which with your TA) Room 2244 + 2245
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationDependency Injection & Design Principles Recap Reid Holmes
Material and some slide content from: - Krzysztof Czarnecki - Ian Sommerville - Head First Design Patterns Dependency Injection & Design Principles Recap Reid Holmes REID HOLMES - SE2: SOFTWARE DESIGN
More informationSlide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D
Slide 1 Design Patterns Prof. Mirco Tribastone, Ph.D. 22.11.2011 Introduction Slide 2 Basic Idea The same (well-established) schema can be reused as a solution to similar problems. Muster Abstraktion Anwendung
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationDesign patterns generic models
Design patterns generic models Jyothish Maniyath CDC Software India Pvt Ltd 6 th Floor, Canberra Block, UB City, #24 Vittal Mallya Road, Bangalore, India +91 94482 46718 jyosh@maniyath.com ABSTRACT This
More informationUsing Design Patterns in Java Application Development
Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? Patterns are intended to capture the best available software development experiences in the
More informationCHAPTER 6: CREATIONAL DESIGN PATTERNS
CHAPTER 6: CREATIONAL DESIGN PATTERNS SESSION III: BUILDER, PROTOTYPE, SINGLETON Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012 by Carlos E. Otero For non-profit
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture
More informationMVC. Model-View-Controller. Design Patterns. Certain programs reuse the same basic structure or set of ideas
MVC -- Design Patterns Certain programs reuse the same basic structure or set of ideas These regularly occurring structures have been called Design Patterns Design Patterns Design Patterns: Elements of
More informationCS 2720 Practical Software Development University of Lethbridge. Design Patterns
Design Patterns A design pattern is a general solution to a particular class of problems, that can be reused. They are applicable not just to design. You can think of patterns as another level of abstraction.
More informationCS560. Lecture: Design Patterns II Includes slides by E. Gamma et al., 1995
CS560 Lecture: Design Patterns II Includes slides by E. Gamma et al., 1995 Classification of GoF Design Pattern Creational Structural Behavioural Factory Method Adapter Interpreter Abstract Factory Bridge
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationDesign Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns
Introduction o to Patterns and Design Patterns Dept. of Computer Science Baylor University Some slides adapted from slides by R. France and B. Tekinerdogan Observations Engineering=Problem Solving Many
More informationPatterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides
Patterns Patterns Pattern-based engineering: in the field of (building) architecting and other disciplines from 1960 s Some software engineers also started to use the concepts Become widely known in SE
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationLectures 24 and 25 Introduction to Architectural Styles and Design Patterns
Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More informationDesign Patterns 2. Page 1. Software Requirements and Design CITS 4401 Lecture 10. Proxy Pattern: Motivation. Proxy Pattern.
Proxy : Motivation Design s 2 It is 3pm. I am sitting at my 10Mbps connection and go to browse a fancy web page from the US, This is prime web time all over the US. So I am getting 100kbps What can you
More informationbe used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate
UNIT 4 GRASP GRASP: Designing objects with responsibilities Creator Information expert Low Coupling Controller High Cohesion Designing for visibility - Applying GoF design patterns adapter, singleton,
More informationDesign Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011
Design Patterns Lecture 2 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Structural patterns Part 2 Decorator Intent: It attaches additional responsibilities
More informationIdioms and Design Patterns. Martin Skogevall IDE, Mälardalen University
Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang
More informationCS251 Software Engineering Lectures 18: Intro to DP
و ابتغ فيما آتاك هللا الدار اآلخرة و ال تنس نصيبك من الدنيا CS251 Software Engineering Lectures 18: Intro to DP Slides by Rick Mercer, Christian Ratliff, Oscar Nierstrasz and others 1 Outline Introduction
More informationDesign Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)
Design Pattern CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) A. Design Pattern Design patterns represent the best practices used by experienced
More informationCS/CE 2336 Computer Science II
CS/CE 2336 Computer Science II UT D Session 20 Design Patterns An Overview 2 History Architect Christopher Alexander coined the term "pattern" circa 1977-1979 Kent Beck and Ward Cunningham, OOPSLA'87 used
More informationCOSC 3351 Software Design. Design Patterns Behavioral Patterns (I)
COSC 3351 Software Design Design Patterns Behavioral Patterns (I) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adapter(class) Interpreter Template Method Object Abstract
More information6.3 Patterns. Definition: Design Patterns
Subject/Topic/Focus: Analysis and Design Patterns Summary: What is a pattern? Why patterns? 6.3 Patterns Creational, structural and behavioral patterns Examples: Abstract Factory, Composite, Chain of Responsibility
More informationCOSC 3351 Software Design. Design Patterns Behavioral Patterns (II)
COSC 3351 Software Design Design Patterns Behavioral Patterns (II) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adapter(class) Interpreter Template Method Object Abstract
More informationGoals of Lecture. Lecture 27: OO Design Patterns. Pattern Resources. Design Patterns. Cover OO Design Patterns. Pattern Languages of Programming
Goals of Lecture Lecture 27: OO Design Patterns Cover OO Design Patterns Background Examples Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2001 April 24, 2001 Kenneth
More informationSoftware Reengineering Refactoring To Patterns. Martin Pinzger Delft University of Technology
Software Reengineering Refactoring To Patterns Martin Pinzger Delft University of Technology Outline Introduction Design Patterns Refactoring to Patterns Conclusions 2 The Reengineering Life-Cycle (1)
More informationLecture 20: Design Patterns II
Lecture 20: Design Patterns II Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov.
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationApplying the Observer Design Pattern
Applying the Observer Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers
More informationCS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009
CS 349 / SE 382 Design Patterns Professor Michael Terry January 21, 2009 Today s Agenda More demos! Design patterns CS 349 / SE 382 / 2 Announcements Assignment 1 due Monday at 5PM! CS 349 / SE 382 / 3
More informationDependency Injection with Guice
Author: Assaf Israel - Technion 2013 Dependency Injection with Guice Technion Institute of Technology 236700 1 Complex Dependency Injection Deep dependencies (with no default) A depends on B, which depends
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationIntroduction to Software Engineering: Object Design I Reuse & Patterns
Introduction to Software Engineering: Object Design I Reuse & Patterns John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from Bruegge & DuToit 3e, Chapter 8,
More informationLecture 13: Design Patterns
1 Lecture 13: Design Patterns Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2005 2 Pattern Resources Pattern Languages of Programming Technical conference on Patterns
More informationPattern Resources. Lecture 25: Design Patterns. What are Patterns? Design Patterns. Pattern Languages of Programming. The Portland Pattern Repository
Pattern Resources Lecture 25: Design Patterns Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Pattern Languages of Programming Technical conference on Patterns
More informationA Primer on Design Patterns
A Primer on Design Patterns First Edition Rahul Batra This book is for sale at http://leanpub.com/aprimerondesignpatterns This version was published on 2016-03-23 This is a Leanpub book. Leanpub empowers
More informationApplying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3
Applying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu Gang of Four (GoF) http://www.research.ibm.com/designpatterns/pubs/ddj-eip-award.htm
More informationObject Oriented. Analysis and Design
OODP- OOAD Session 5 Object Oriented Analysis and Design Oded Lachish Department of Computer Science and Information Systems Birkbeck College, University of London Email: oded@dcs.bbk.ac.uk Web Page: http://www.dcs.bbk.ac.uk/~oded
More informationDesign pa*erns. Based on slides by Glenn D. Blank
Design pa*erns Based on slides by Glenn D. Blank Defini6ons A pa#ern is a recurring solu6on to a standard problem, in a context. Christopher Alexander, a professor of architecture Why would what a prof
More informationA Reconnaissance on Design Patterns
A Reconnaissance on Design Patterns M.Chaithanya Varma Student of computer science engineering, Sree Vidhyanikethan Engineering college, Tirupati, India ABSTRACT: In past decade, design patterns have been
More informationDesign Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000
Design Patterns Hausi A. Müller University of Victoria Software Architecture Course Spring 2000 1 Motivation Vehicle for reasoning about design or architecture at a higher level of abstraction (design
More informationTDDB84. Lecture 2. fredag 6 september 13
TDDB84 Lecture 2 Yes, you can bring the books to the exam Creational Factory method Structural Decorator Behavioral LE2 Creational Abstract Factory Singleton Builder Structural Composite Proxy Bridge Adapter
More informationOverview of Patterns: Introduction
: Introduction d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Introduction
More informationOODP Session 4. Web Page: Visiting Hours: Tuesday 17:00 to 19:00
OODP Session 4 Session times PT group 1 Monday 18:00 21:00 room: Malet 403 PT group 2 Thursday 18:00 21:00 room: Malet 407 FT Tuesday 13:30 17:00 room: Malet 404 Email: oded@dcs.bbk.ac.uk Web Page: http://www.dcs.bbk.ac.uk/~oded
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 8 OO modeling Design Patterns Introduction Creational Patterns Software
More informationAPPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS
APPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS Adem Zumbul (TUBITAK-UEKAE, Kocaeli, Turkey, ademz@uekae.tubitak.gov.tr); Tuna Tugcu (Bogazici University, Istanbul, Turkey, tugcu@boun.edu.tr) ABSTRACT
More informationApplying the Decorator Design Pattern
Applying the Decorator Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers
More informationDesign Patterns. Gunnar Gotshalks A4-1
Design Patterns A4-1 On Design Patterns A design pattern systematically names, explains and evaluates an important and recurring design problem and its solution Good designers know not to solve every problem
More informationCPSC 310 Software Engineering. Lecture 11. Design Patterns
CPSC 310 Software Engineering Lecture 11 Design Patterns Learning Goals Understand what are design patterns, their benefits and their drawbacks For at least the following design patterns: Singleton, Observer,
More informationDesign Patterns. Definition of a Design Pattern
Design Patterns Barbara Russo Definition of a Design Pattern A Pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem,
More informationObject-oriented Software Design Patterns
Object-oriented Software Design Patterns Concepts and Examples Marcelo Vinícius Cysneiros Aragão marcelovca90@inatel.br Topics What are design patterns? Benefits of using design patterns Categories and
More informationUNIT-I. Introduction, Architectural Styles, Shared Information Systems
SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road 517583 QUESTION BANK (DESCRIPTIVE) Subject with Code : SADP (13A05701) Year & Sem: IV-B.Tech & I-Sem Course & Branch: B.Tech
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns
More informationSoftwaretechnik. Design Patterns. Matthias Keil. Albert-Ludwigs-Universität Freiburg
Softwaretechnik Design Patterns Matthias Keil Institute for Computer Science Faculty of Engineering University of Freiburg 14. Juni 2012 Design Patterns (1) solutions for specific problems in object-oriented
More informationSoftware Eningeering. Lecture 9 Design Patterns 2
Software Eningeering Lecture 9 Design Patterns 2 Patterns covered Creational Abstract Factory, Builder, Factory Method, Prototype, Singleton Structural Adapter, Bridge, Composite, Decorator, Facade, Flyweight,
More informationDesign Patterns Lecture 2
Design Patterns Lecture 2 Josef Hallberg josef.hallberg@ltu.se 1 Patterns covered Creational Abstract Factory, Builder, Factory Method, Prototype, Singleton Structural Adapter, Bridge, Composite, Decorator,
More informationSecond Midterm Review
Second Midterm Review Comp-303 : Programming Techniques Lecture 24 Alexandre Denault Computer Science McGill University Winter 2004 April 5, 2004 Lecture 24 Comp 303 : Second Midterm Review Page 1 Announcements
More informationDesign patterns. Valentina Presutti courtesy of Paolo Ciancarini
Design patterns Valentina Presutti courtesy of Paolo Ciancarini Agenda What are design patterns? Catalogues of patterns Languages of patterns Two case studies: design with patterns Software Architectures
More informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationDesign Patterns. "Gang of Four"* Design Patterns. "Gang of Four" Design Patterns. Design Pattern. CS 247: Software Engineering Principles
CS 247: Software Engineering Principles Design Patterns Reading: Freeman, Robson, Bates, Sierra, Head First Design Patterns, O'Reilly Media, Inc. 2004 Ch Strategy Pattern Ch 7 Adapter and Facade patterns
More informationEgon Borger (Pisa) Capturing Design Pattern Abstractions by ASMs
Egon Borger (Pisa) Capturing Design Pattern Abstractions by ASMs Universita di Pisa, Dipartimento di Informatica, I-56127 Pisa, Italy boerger@di.unipi.it visiting SAP Research, Karlsruhe, Germany egon.boerger@sap.com
More informationCS 247: Software Engineering Principles. Design Patterns
CS 247: Software Engineering Principles Design Patterns Reading: Freeman, Robson, Bates, Sierra, Head First Design Patterns, O'Reilly Media, Inc. 2004 Ch 1 Strategy Pattern Ch 7 Adapter and Facade patterns
More informationMac OS X and ios operating systems. Lecture 5 Design patterns. Tomasz Idzi
Lecture 5 Design patterns What is it? reusable solutions clear code easy to develop Descripion of pattern. what why how the design pattern is you should use it to use it singleton abstract factory MVC
More informationDevelopment and Implementation of Workshop Management System Application to Explore Combing Multiple Design Patterns
St. Cloud State University therepository at St. Cloud State Culminating Projects in Computer Science and Information Technology Department of Computer Science and Information Technology 5-2015 Development
More informationUNIT I Introduction to Design Patterns
SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road 517583 QUESTION BANK (DESCRIPTIVE) Subject with Code : Design Patterns (16MC842) Year & Sem: III-MCA I-Sem Course : MCA Regulation:
More informationCOSC 3351 Software Design. Design Patterns Structural Patterns (I)
COSC 3351 Software Design Design Patterns Structural Patterns (I) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adaptor(class) Interpreter Template Method Object Abstract
More informationSoftwaretechnik. Design Patterns. Stephan Arlt SS University of Freiburg. Stephan Arlt (University of Freiburg) Softwaretechnik SS / 47
Softwaretechnik Design Patterns Stephan Arlt University of Freiburg SS 2011 Stephan Arlt (University of Freiburg) Softwaretechnik SS 2011 1 / 47 Design Patterns Gamma, Helm, Johnson, Vlissides: Design
More informationA Rapid Overview of UML
A Rapid Overview of UML The Unified dmodeling Language (UML) Emerged in the mid 90s as the de facto standard for softwareengineering engineering design Use case diagram depicts user interaction with system
More informationTHOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS
THOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS LOGISTICS HW3 due today HW4 due in two weeks 2 IN CLASS EXERCISE What's a software design problem you've solved from an idea you learned from someone else?
More informationhttps://www.lri.fr/~linaye/gl.html
Software Engineering https://www.lri.fr/~linaye/gl.html lina.ye@centralesupelec.fr Sequence 3, 2017-2018 1/50 Software Engineering Plan 1 2 3 4 5 2/50 Software Engineering ground Evolution of Program 3/50
More informationApplying the Factory Method Design Pattern
Applying the Factory Method Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science
More informationSYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business
Contents i UNIT - I UNIT - II UNIT - III CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Software Reuse Success Factors. CHAPTER - 2 [REUSE-DRIVEN SOFTWARE ENGINEERING IS A BUSINESS] Reuse Driven Software
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static
More informationDesign Patterns. SE3A04 Tutorial. Jason Jaskolka
SE3A04 Tutorial Jason Jaskolka Department of Computing and Software Faculty of Engineering McMaster University Hamilton, Ontario, Canada jaskolj@mcmaster.ca November 18/19, 2014 Jason Jaskolka 1 / 35 1
More informationThe Strategy Pattern Design Principle: Design Principle: Design Principle:
Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design
More informationLecture 19: Introduction to Design Patterns
Lecture 19: Introduction to Design Patterns Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More information