Course UML and Design Patterns of module Software Engineering and Design, version November 18, 2013.
|
|
- Clare Jacobs
- 5 years ago
- Views:
Transcription
1 The Observer Pattern Prof. Dr. Eric Dubuis Berner Fachhochschule, Engineering and Information Biel Course UML and Design Patterns of module Software Engineering and Design, version November 8, 203. Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page /
2 The Problem An object (the subject) needs to update various client objects (observers): The subject needs to inform other interested objects about its state changes The subject does not know its observers in advance The set of observers may change dynamically Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 2/
3 A Solution: The Classical Observer Pattern The class structure of the classical (GoF) observer pattern (complete): Subject {abstract} +attach(observer o) +detach(observer o) #notifyobservers() ConcreteSubject -subjectstate +getstate() +setstate() -mysubject setstate(newstate) { subjectstate = newstate; } for (Observer o: observers) { } o.update(); notifyobservers(); * -observers +update() «interface» Observer ConcreteObserver -observerstate +update() observerstate = mysubject.getstate(); Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 3/
4 Collaboration :Client asubject: Subject observer: Observer observer2: Observer setstate notifyobservers() update() getstate() update() getstate() Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 4/
5 Weakness of Above Solution (from a J ava Perspective) subjects must extend a common base class observers are not typed subjects cannot send observer-specific data observers must use getstate() overhead Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 5/
6 The J ava Solution: Typed Observers (a.k.a. Listeners) Object «interface» EventListener * EventObject ConcreteSubject * «interface» SomeListener SomeEvent -state +addsomelistener(s.l.) +removesomelistener(s.l.) -notifylisteners() +setstate(newstate)..* * -counts +somechange(s.e.) SomeObserver «create» +SomeObserver(Con.S.).....* «create» +SomeEvent(Con.S.,..)... «inner class» SomeListenerImpl +somechange(s.e.) Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 6/
7 The J ava Code Sketch for Typed Observers (a.k.a. Listeners) Provide an interface and an event class for each type of observer. For example: public interface SomeListener extends EventListener { 2 public void somechange(someevent e); 3 } 4 5 public class SomeEvent extends EventObject { 6 // optional: additional instance variables go here... 7 public SomeEvent(ConcreteSubject s,...) { 8 super(s); 9 // optional: initialize instance variables 0 }. public ConcreteSubject getconcretesubject() { 2. return (ConcreteSubject) getsource(); 3 } 4. // optional: other getters... 5 } update method contains the sender + optionally, data optional: add additional parameters defined in class EventObject Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 7/
8 Clients (observers) can register themselves at objects (concrete subjects) generating SomeEvent: // in class ConcreteSubject acting as subject: 2 private Set<SomeListener> listeners = 3 new HashSet<SomeListener>(); 4 5 public void addsomelistener(somelistener l) { 6 this.listeners.add(l); 7 } 8 9 public boolean removesomelistener(somelistener l) { 0 return this.listeners.remove(l); } 2 Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 8/
9 The subject informs any listener whenever its state changes: // in class ConcreteSubject acting as a subject: 2 private void notifylisteners() { 3 SomeEvent e = new SomeEvent(this,...); 4 for (SomeListener l: this.listeners) { 5 l.somechange(e); 6 } 7 } 8 9 private State state; 0 public void setstate(state newstate) { 2 this.state = newstate; 3 notifylisteners(); 4 } Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 9/
10 Any object can act as listener: public class SomeObserver { // extends Object implicitly 2 private ConcreteSubject s; 3 private SomeListener mylistener; SomeListenerImpl 4 private int counts = 0; is an inner class 5 private class SomeListenerImpl implements SomeListener { 6 public void somechange(someevent e) { 7 SomeObserver.this.counts++; 8 } 9 } 0 public SomeObserver(ConcreteSubject s) { this.s = s; 2 this.mylistener = new SomeListenerImpl(); 3 this.s.addsomelistener(this.mylistener); 4 } 5 } Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page 0/
11 Remarks Java observers (listeners) are typed! subjects need not extend a common base class subjects send events that contain the source (= the sender) optional: event objects can contain additional data, too if needed: SomeObserver instance can remove its listener from ConcreteSubject later Berner Fachhochschule Haute école spécialisée bernoise Bern University of Applied Sciences Page /
Course "UML and Design Patterns" of module "Software Engineering and Design", version November 2011
The Observer Pattern Prof. Dr. Eric Dubuis Berner Fachhochschule, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version November 20 BFH/TI/Software Engineering and
More informationDesign Patterns. Observer Pattern*
Design Patterns Observer Pattern* ebru@hacettepe.edu.tr ebruakcapinarsezer@gmail.com http://yunus.hacettepe.edu.tr/~ebru/ @ebru176 Kasım 2017 *revised from Observer Pattern, OOA&D, Rubal Gupta, CSPP, Winter
More informationObserver Pattern. CS580 Advanced Software Engineering October 31, Yu Sun, Ph.D.
Observer Pattern CS580 Advanced Software Engineering http://cs356.yusun.io October 31, 2014 Yu Sun, Ph.D. http://yusun.io yusun@csupomona.edu Announcements Quiz 5 Singleton Pattern Abstract Factory Pattern
More informationOn Polymorphism and the Open-Closed Principle
Berner Fachhochschule Engineering and Information Technology On Polymorphism and the Open-Closed Principle Prof. Dr. Eric Dubuis Berner Fachhochschule, Engineering and Information Technology @ Biel Course
More informationOutline. Design Patterns. Observer Pattern. Definitions & Classifications
Outline Design Patterns Definitions & Classifications Observer Pattern Intent Motivation Structure Participants Collaborations Consequences Implementation 1 What is a Design Pattern describes a problem
More informationIntroducing Design Patterns
Introducing Design Patterns Prof. Dr. Eric Dubuis Berner Fachhochschule, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version April 2009 (X) BFH/TI/Software Engineering
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 informationIntroducing Design Patterns
Introducing Design Patterns Prof. Dr. Eric Dubuis, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version October 2007 BFH/TI/UML and Design Patterns/Software Engineering
More informationOn Polymorphism and the Open-Closed Principle
On Polymorphism and the Open-Closed Principle Prof. Dr. Eric Dubuis Berner Fachhochschule, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version March 2008 BFH/TI/Software
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 informationLast Lecture. Lecture 17: Design Patterns (part 2) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 4448/ Spring Semester, 2005
1 Lecture 17: Design Patterns (part 2) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 4448/6448 - Spring Semester, 2005 2 Last Lecture Design Patterns Background and Core Concepts Examples
More informationSoftware Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software
Software Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software Chapter 9 Introduction to Design Patterns Copy Rights Virtual University of Pakistan 1 Design
More informationUML and Objectorientation. Kristian Sandahl
UML and Objectorientation Kristian Sandahl 2 Maintenance Requirements Validate Requirements, Verify Specification cceptance Test (Release testing) System Design (rchitecture, High-level Design) Verify
More informationIntroduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.
More informationState Machine. Designing components using a finite state machine model.
State Machine Designing components using a finite state machine model. When State Matters Some components behave differently depending on what state they are in. Examples: Alarm Clock Calculator Stop Watch
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 informationComponent ConcreateComponent Decorator ConcreateDecoratorA ConcreteDecoratorB
Comp435 Object-Oriented Design Week 12 Computer Science PSU HBG Attach additional responsibilities to an object dynamically Provide a flexible alternative to subclassing for extending functionality Attach
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 informationModel-based Software Engineering (02341, spring 2016) Ekkart Kindler
Model-based Software Engineering (02341, spring 2016) II. Modelling with a Purpose 1. Models to which end Understanding the world (conceptual models, domain models) Understanding what the software is supposed
More informationEJB 3 Entity Relationships
Berner Fachhochschule Technik und Informatik EJB 3 Entity Relationships Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content What are relationships?
More informationObject-Oriented Oriented Programming
Object-Oriented Oriented Programming Visitor Pattern Observer Pattern CSIE Department, NTUT Woei-Kae Chen Visitor Pattern Visitor Pattern Behavioral pattern Visitor: Intent Represent an operation to be
More informationLaboratorio di Tecnologie dell'informazione
Laboratorio di Tecnologie dell'informazione Ing. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Design pattern Observer Some motivations In many programs, when a object changes
More informationEJB 3 Entity Relationships
Berner Fachhochschule Technik und Informatik EJB 3 Entity Relationships Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content What are relationships?
More informationTutorial notes on. Object-oriented design
Tutorial notes on Object-oriented design Dr. C. Constantinides Computer Science and Software Engineering Concordia University 1 Exercise 1. Consider the Domain Model and the operation contracts below:
More informationMidterm Exam. CS169 Fall November 17, 2009 LOGIN: NAME: SID: Problem Max Points Points TOTAL 100
Midterm Exam CS169 Fall 2009 November 17, 2009 Please read all instructions (including these) carefully. Write your name, login, and SID. There are 12 pages in this exam and 6 questions, each with multiple
More informationUML Sequence Diagrams
UML Sequence Diagrams Prof. Dr. Eric Dubuis Berner Fachhochschule, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version October 2008 BFH/TI/Software Engineering
More informationSoftware Engineering 2 A practical course in software engineering. Ekkart Kindler
Software Engineering 2 A practical course in software engineering II. Modelling Software Modelling Software Model based software engineering (taking models a bit more seriously than we did traditionally)
More informationDr. Xiaolin Hu. Review of last class
Review of last class Design patterns Creational Structural Behavioral Abstract Factory Builder Factory Singleton etc. Adapter Bridge Composite Decorator Façade Proxy etc. Command Iterator Observer Strategy
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 informationObject-oriented design and design patterns
Object-oriented design and design patterns COMP 342: Programming Methods 16 October 2008 Object-oriented design and design patterns Object-oriented design: class and sequence diagrams Let s consider our
More informationApply a Design Pattern
Apply a Design Pattern Objectives After completing this lab, you will be able to: Given Apply a design pattern to a model. Transform UML classes to Java classes. Explore the transformation results. No
More informationSolution register itself
Observer Pattern Context: One object (the Subject) is the source of events. Other objects (Observers) want to know when an event occurs. Or: several objects should be immediately updated when the state
More informationCS427a: Object-Oriented Programming Design Patterns for Flexible and Reusable design
CS427a: Object-Oriented Programming Design Patterns for Flexible and Reusable design Michael J. Fischer (from slides by Y. Richard Yang) Lecture 23b November 29, 2011 Example: Duck Game A startup produces
More informationRefining the Observer Pattern: The Middle Observer Pattern
Refining the Observer Pattern: The Middle Observer Pattern Pablo Iaría - iariap@sol.info.unlp.edu.ar Ulises Chesini - uliche@sol.info.unlp.edu.ar Abstract The refinement presented in this paper incorporates
More informationBerner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2
Compiling a C program CS Basics 15) Compiling a C prog. Emmanuel Benoist Fall Term 2016-17 Example of a small program Makefile Define Variables Compilation options Conclusion Berner Fachhochschule Haute
More informationCS Basics 15) Compiling a C prog.
CS Basics 15) Compiling a C prog. Emmanuel Benoist Fall Term 2016-17 Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 1 Compiling a C program Example of a small
More informationEMBEDDED SYSTEMS PROGRAMMING Design Patterns
EMBEDDED SYSTEMS PROGRAMMING 2015-16 Design Patterns DEFINITION Design pattern: solution to a recurring problem Describes the key elements of the problem and the solution in an abstract way Applicable
More informationEMBEDDED SYSTEMS PROGRAMMING Design Patterns
EMBEDDED SYSTEMS PROGRAMMING 2014-15 Design Patterns DEFINITION Design pattern: solution to a recurring problem Describes the key elements of the problem and the solution in an abstract way Applicable
More informationIntroduction to GUIs. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2014
Introduction to GUIs Principles of Software Construction: Objects, Design, and Concurrency Jonathan Aldrich and Charlie Garrod Fall 2014 Slides copyright 2014 by Jonathan Aldrich, Charlie Garrod, Christian
More informationDesign Patterns. Design Patterns
Design Patterns Design Patterns A design pattern is a template solution that developers have refined over time to solve a range of recurring problems Generally object-oriented focus Name that uniquely
More informationUML and Design Patterns Prof. Dr. Eric Dubuis, V. June Engineering and Information Technology. On Package Design
On Package Design Berner Fachhochschule Engineering and Information Technology Prof. Dr. Eric Dubuis Software Engineering and Design Version June 2008 1 Content Package Design: Basic Principle Dependency
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 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 informationDependency Inversion Principle (DIP) Package Design: Coupling Principles
Berner Fachhochschule Prof. Dr. Eric Dubuis Software Engineering and Design Version December 2007 1 Package Design: Basic Principle Dependency Inversion Principle (DIP) Package Design: Coupling Principles
More informationBerner Fachhochschule. Technik und Informatik JAX-WS. Java API for XML-Based Web Services. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel
Berner Fachhochschule Technik und Informatik JAX-WS Java API for XML-Based Web Services Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Overview The motivation for JAX-WS Architecture of JAX-WS and WSDL
More informationINF 111 / CSE 121. Homework 2: Design Patterns and Code Generation using Rational Software Development Platform
Homework 2: Design Patterns and Code Generation using Rational Software Development Platform Laboratory Date: Monday, October 10, 2011 Take Home Due: Thursday, October 20, 2011 Name : Student Number :
More informationBerner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2
Table of Contents Hacking Web Sites Broken Authentication Emmanuel Benoist Spring Term 2018 Introduction Examples of Attacks Brute Force Session Spotting Replay Attack Session Fixation Attack Session Hijacking
More information18.1 Definitions and General OO Principles
Chapter 18: Design Patterns Design patterns are elegant, adaptable, and reusable solutions to everyday software development problems. Each pattern includes a description of a commonly occuring type of
More informationG51PGP Programming Paradigms. Lecture OO-14 More Design Patterns And Java Examples
G51PGP Programming Paradigms Lecture OO-14 More Design Patterns And Java Examples 1 Last lecture Design patterns Creational patterns Singleton Factory more this lecture 2 Reminder: Sub-type polymorphism
More informationObject Oriented Design and Programming Revision
M.Sc Computer Science Object Oriented Design and Programming Revision Oded Lachish Email: oded@dcs.bbk.ac.uk Web Page: http://www.dcs.bbk.ac.uk/~oded/oodp12/oodp2012.html Question 1 (a) What is the motivation
More informationDesign Patterns Application with MDE
Design Patterns Application with MDE Prof. Jean-Marc Jézéquel (Univ. Rennes 1 & INRIA) Triskell Team @ IRISA Campus de Beaulieu F-35042 Rennes Cedex Tel : +33 299 847 192 Fax : +33 299 847 171 e-mail :
More informationCommon Architectures and Design Patterns
Common Architectures and Design Patterns 1 Architectural Styles High-level abstractions of components and communication Even higher than data types, algorithmic pseudocode Also known as design patterns
More informationEJB 3 Entities. Course Multi Tier Business Applications with Java EE. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel. Berner Fachhochschule
Berner Fachhochschule Technik und Informatik EJB 3 Entities Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content Characteristics of entities Programming
More informationDesign Patterns. Dennis Mancl Alcatel-Lucent. April 20,
Design Patterns Dennis Mancl Alcatel-Lucent April 20, 2011 dennis.mancl@alcatel-lucent.com 1 1 Design Patterns Outline What is a pattern? The Design Patterns Book One example pattern: Singleton Patterns
More informationStateful Session Beans
Berner Fachhochschule Technik und Informatik Stateful Session Beans Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content Characteristics of stateful
More informationJava + Patterns = Object Engineering?
Java + Patterns = Object Engineering? David Parsons, The Object People, Southampton, UK. Introduction The mid 1990s saw an explosion of interest in two separate aspects of object technology, Java and design
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 informationClasses and Objects 3/28/2017. How can multiple methods within a Java class read and write the same variable?
Peer Instruction 8 Classes and Objects How can multiple methods within a Java class read and write the same variable? A. Allow one method to reference a local variable of the other B. Declare a variable
More informationCPSC 427a: Object-Oriented Programming
CPSC 427a: Object-Oriented Programming Michael J. Fischer Lecture 22a November 17, 2011 CPSC 427a, Lecture 22a 1/20 CPSC 427a, Lecture 22a 2/20 CPSC 427a, Lecture 22a 3/20 General OO principles 1. Encapsulation
More informationCourse "UML and Design Patterns" of module "Software Engineering and Design", version February 2011 (X)
UML Class Diagrams Prof. Dr. Eric Dubuis, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version February 2011 (X) BFH/TI/Software Engineering and Design/UML and Design
More informationAdvanced Topics in Software Engineering (02265) Ekkart Kindler
Advanced Topics in Software Engineering (02265) IV. (Meta-) Modelling Frameworks 2 1. Motivation & Overview With MOF, we have: Modelling notation (EMOF / CMOF) Java API (JMI, EMF, etc) Instance model /
More informationBerner Fachhochschule. Technik und Informatik. Web Services. An Introduction. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel
Berner Fachhochschule Technik und Informatik Web Services An Introduction Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Overview Web Service versus Web Application A Definition for the Term Web Service
More informationChapter 7 Design and Implementation
Chapter 7 Design and Implementation Chapter 7 Design and Implementation Slide 1 Topics covered Object-oriented design using the UML Design patterns Implementation issues Reuse Configuration management
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 informationJPA Entities. Course Multi Tier Business Applications with Java EE. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel. Berner Fachhochschule
Berner Fachhochschule Technik und Informatik JPA Entities Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content Characteristics of entities Programming
More informationare most specifically concerned with
Observer Behavioral Patterns Behavioral patterns are those patterns that are most specifically concerned with communication between objects Introduction Name Observer Also Known As Dependents, Publish-Subscribe
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 informationApplication Note. Communication Services Framework Fundamentals
Application Note Communication Services Framework Fundamentals Application Note Communication Services Framework Fundamentals Executive Summary The Communication Services Framework (CSF) is a set of starting
More informationThe State and Strategy Patterns. Design Patterns In Java Bob Tarr
The State and Strategy Patterns The State Pattern Intent Allow an object to alter its behavior when its internal state changes. The object will appear to change its class. Motivation 2 The State Pattern
More informationDesign Patterns. it s about the Observer pattern, the Command pattern, MVC, and some GUI. some more
Lecture: Software Engineering, Winter Semester 2011/2012 some more Design Patterns it s about the Observer pattern, the Command pattern, MVC, and some GUI Design Pattern *...+ describes a problem which
More informationChapter 18. Software Reuse
Chapter 18 Software Reuse Ian Sommerville Lutz Prechelt Ian Sommerville 2004, Software Engineering, 7th edition, prechelt@inf.fu-berlin.de 1 Objectives To explain the benefits of software reuse and some
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 informationBerner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2
Table of Contents AWT 4) JSF Lifecycle, Event handling, data binding, i18n Emmanuel Benoist Fall Term 2016-17 Life-cycle Basic JSF Life-cycle Conversion and validation Invoke Application Actors in the
More informationBerner Fachhochschule Haute école spécialisée bernoise Berne University of Applied Sciences 2
Table of Contents 6) Overview: web applications Emmanuel Benoist Spring Term 2018 Presentation Server Side Programming Client Side Frameworks JQuery AngularJS Google Web Toolkit - GWT JSON Conclusion Berner
More informationCSC207H: Software Design Lecture 6
CSC207H: Software Design Lecture 6 Wael Aboelsaadat wael@cs.toronto.edu http://ccnet.utoronto.ca/20075/csc207h1y/ Office: BA 4261 Office hours: R 5-7 Acknowledgement: These slides are based on material
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 Pattern Instantiation Directed by Concretization and Specialization
DOI:10.2298/CSIS091212032K Design Pattern Instantiation Directed by Concretization and Specialization Peter Kajsa 1, Lubomir Majtas 1, and Pavol Navrat 1 1 Faculty of Informatics and Information Technologies,
More informationChapter 3.3 Programming Fundamentals. Languages Paradigms Basic Data Types Data Structures OO in Game Design Component Systems Design Patterns
Chapter 3.3 Programming Fundamentals Languages Paradigms Basic Data Types Data Structures OO in Game Design Component Systems Design Patterns Languages Language: A system composed of signs (symbols, indices,
More informationSoftware Architecture and Engineering Modularity Peter Müller
Software Architecture and Engineering Modularity Peter Müller Chair of Programming Methodology Spring Semester 2018 3. Modeling and Specifications 2 Mastering Complexity The technique of mastering complexity
More informationTecniche di Progettazione: Design Patterns
Tecniche di Progettazione: Design Patterns GoF: State 1 State Pattern Example 1 Consider a class with two methods, push() and pull(), whose behavior changes depending on the object state To send the push
More informationINF5120 Modellbasert Systemutvikling. F10-2: Architectural Patterns, Design Patterns and Refactoring. Lecture Arne-Jørgen Berre
INF5120 Modellbasert Systemutvikling F10-2: Architectural Patterns, Design Patterns and Refactoring Lecture 28.03.2011 2011 Arne-Jørgen Berre Patterns: From Analysis to Implementation Analysis Design Implementation
More informationCSC207H: Software Design Lecture 11
CSC207H: Software Design Lecture 11 Wael Aboelsaadat wael@cs.toronto.edu http://ccnet.utoronto.ca/20075/csc207h1y/ Office: BA 4261 Office hours: R 5-7 Acknowledgement: These slides are based on material
More informationA reusable design concept
References: Xiaoping Jia, Object-Oriented Software Development Using Java;Douglas C.Schmidt, Design Pattern Case Studies with C++;Bruce E.Wampler,The Essence of Object-Oriented Programming with Java and
More informationINF5120 Modellbasert Systemutvikling
INF5120 Modellbasert Systemutvikling F07-2: Architectural Patterns, Design Patterns and Refactoring Lecture 27.02.2017 Arne-Jørgen Berre Patterns: From Analysis to Implementation Analysis Design Implementation
More informationSimple Patterns for Extensibility
Simple Patterns for Extensibility Prof. Dr. U. Aßmann Chair for Software Engineering Faculty of Informatics Dresden University of Technology Version 09-0.1, 10/28/08 1) Object Recursion 2) Composite 3)
More informationGenerating/Updating code from whole project
Round-trip engineering is the ability to generate model from source code and generate source code from UML model, and keep them synchronized. You can make use of round-trip engineering to keep your implementation
More informationState Machine Specification Directly in Java and C++ Alexander Sakharov
State Machine Specification Directly in Java and C++ Alexander Sakharov 1 Problem Statement Finite state machines (FSM) have become a standard model for representing object behavior. UML incorporates FSM
More informationDesign Patterns 1: Templates Methods, Abstract Factories, Observer/Listener
1 / 1 Design Patterns 1: Templates Methods, Abstract Factories, Observer/Listener Yoav Goldberg Bar Ilan University Design Patterns 2 / 1 3 / 1 each pattern describes a problem which occurs over and over
More informationDesign Patterns. Softwaretechnik. Matthias Keil. Albert-Ludwigs-Universität Freiburg
Design Patterns Softwaretechnik Matthias Keil Institute for Computer Science Faculty of Engineering University of Freiburg 6. Mai 2013 Design Patterns Gamma, Helm, Johnson, Vlissides: Design Patterns,
More informationDESIGN PATTERNS DESIGN PATTERNS AND REUSABILITY
D DESIGN PATTERNS We do a lot of things in our daily lives according to certain patterns even though we may not be aware of it. For example, each working adult performs similar activities every working
More informationCase studies: Outline Case Study: Noughts and Crosses
I. Automated Banking System Case studies: Outline Case Study: Noughts and Crosses II. III. Library Noughts and Crosses Definition of the problem Game played on a 3x3 square board between two players. The
More informationResponsibilities and rewards: Reasoning about design patterns
Responsibilities and rewards: Reasoning about design patterns Neelam Soundarajan and Jason Hallstrom Computer and Information Science Ohio State University, Columbus, OH 43210 e-mail: {neelam, hallstro}@cis.ohio-state.edu
More informationINF5120 Modellbasert Systemutvikling. F08: Service Modeling and SOA and Service Design - GRASP Patterns, Design Patterns, SOA Patterns and Refactoring
INF5120 Modellbasert Systemutvikling F08: Service Modeling and SOA and Service Design - GRASP Patterns, Design Patterns, SOA Patterns and Refactoring Forelesning 15.03.2010 Arne-Jørgen Berre Agenda Service
More informationDesign Patterns. Software Engineering. Sergio Feo-Arenis slides by: Matthias Keil
Design Patterns Software Engineering Sergio Feo-Arenis slides by: Matthias Keil Institute for Computer Science Faculty of Engineering University of Freiburg 30.06.2014 Design Patterns Literature Gamma,
More informationAn illustrative example of refactoring object-oriented source code with aspect-oriented mechanisms
SOFTWARE PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2008; 38:361 396 Published online 21 August 2007 in Wiley InterScience (www.interscience.wiley.com)..835 An illustrative example of refactoring object-oriented
More informationThe CLOSER: Automating Resource Management in Java
The CLOSER: Automating Resource Management in Java Isil Dillig Thomas Dillig Computer Science Department Stanford University Eran Yahav Satish Chandra IBM T.J. Watson Research Center ISMM 2008 Motivation
More informationJava classes cannot extend multiple superclasses (unlike Python) but classes can implement multiple interfaces.
CSM 61B Abstract Classes & Interfaces Spring 2017 Week 5: February 13, 2017 1 An Appealing Appetizer 1.1 public interface Consumable { public void consume (); public abstract class Food implements Consumable
More informationPatterns for Decoupling
Patterns for Decoupling Ingolf H. Krueger Department of Computer Science & Engineering University of California, San Diego La Jolla, CA 92093-0114, USA California Institute for Telecommunications and Information
More information1. Identify the areas of tight-coupling in the following code:
1. Identify the areas of tight-coupling in the following code: public class ChatUI extends UIElement [ private ChatController ctrl_; private String chattext_; public void onsendmsgbuttonclick(){ ctrl_.sendclicked();
More informationclass ViewOne: 1 to the 1 power = 1.0 class ViewOne: 2 to the 2 power = 4.0 class ViewOne: 4 to the 4 power = 256.0
14. The Observer Design Pattern allows you to have multiple current views of the same object by showing the state of the observed object every time its state changes. One example is when a spreadsheet
More information