.NET Three Examples of Applied Patterns Jimmy Nilsson
|
|
- Adam Casey
- 5 years ago
- Views:
Transcription
1 .NET Three Examples of Applied Patterns Jimmy Nilsson
2 About Jimmy Nilsson Primarily a developer, but also a trainer and author Blogs at Author of Applying Domain-Driven Design and Patterns and.net Enterprise Design
3 Agenda Short introduction Problem 1: Location of persistence code Problem 2: Queries against a domain model Problem 3: Maintenance of a state graph Bonus: Non-trivial instantiation
4 What s a pattern? A design pattern has Name Problem (including context) Solution Consequences Nothing but simple, flexible and elegant solutions
5 Why learn about patterns? Very important part of the language for developers/architects
6 When to use patterns? Don t design a new application using all the patterns you can think of Start as simple as possible Introduce patterns as required
7 Problem 1: Location of Persistence code Customer * Order We d like to persist information about customers and orders
8 Solution 1A: Save() etc on the Customer Id Name DoStuff() Save() Find(id):Customer Entities * Order Id DoOtherStuff() Save() Find(id):Order Ouch... Hard to control transactions. And not too true to the Single Responsibility Principle (But Active Record [PoEAA] has definitely got a new life...)
9 Solution 1B: Unit of Work+Identity Map [PoEAA] UnitOfWork Find(1) finder an identity map database +RegisterNew(in object) +RegisterDirty(in object) +RegisterClean(in object) +RegisterDeleted(in object) +Commit() [found not null] found found = Get(1) [found is null] found = select... where id = 1 Ouch... Too much responsibility on the client?
10 Solution 1C: Repository [DDD] selection criteria matching objects Delegate client repository database
11 Pause: Gregg Irwin said this about pattern adoption 1. You use it without being aware that you re using it 2. You hear about it, read up on it, and tinker a bit 3. You learn more and start using it explicitly, if naively 4. You get the fire and evangelize (optional) 5. Something clicks 6. You learn more and apply it less naively and more implicitly 7. Time passes and you see flaws 8. You question the concept (often because you misapplied it) 9. You either forget about it or add knowledge and experience (Repeat steps 5-9 if necessary) 10. You use it without being aware that you are using it
12 Problem 2: Queries against a domain model Customer * Order Send letter to all customers who have a credit limit > 1'' and who have bought from a certain product group the last month
13 Solution 2A: Loop Ouch... A relational database is used, instantiation of all customers and orders in the domain model is too expensive
14 Solution 2B: Query Object [PoEAA] Query 1 * Criteria -_operator -_field -_value Ouch... Too much responsibility on the client?
15 Solution 2C: Repository [DDD] selection criteria matching objects Delegate client repository database Ouch... The repository classes may grow very large. And this isn t taking care of the situation when you d like to check a transient customer
16 Solution 2D: Specification [DDD] Invoice +...() +IsDelinquent() : bool InvoiceDelinquency +Test(in invoice) : bool +...() Invoice
17 Problem 3: Maintenance of state graph
18 Solution 3A: if-statements everywhere Ouch... The description of the graph is very mixed up and spread out
19 Solution 3B: A table based representation of the graph Ouch... Hard to elegantly deal with state specific behavior
20 Solution 3C: State [GoF] Context -_state State +Request() +Handle() _state.handle() ConcreteStateA +Handle() ConcreteStateB +Handle()
21 Bonus: Non-trivial instantiation An order can be instantiated as: New ordinary New reservation New credit order New repetition Fetch stored order
22 Bonus A: new() Ouch... The different constructors aren t expressing purpose
23 Bonus B: Static methods Ouch... The class has two different responsibilities (Even if we factor out the fetching of a stored instance)
24 Bonus C: Factory [DDD] new(parameters) product Create client FACTORY product
25 Conclusion Patterns are great to have in the tool box!
26 References Gamma, Helm, Johnson, Vlissides: Design Patterns [GoF] Evans: Domain-Driven Design [DDD] Fowler: Patterns of Enterprise Application Architecture [PoEAA] Fowler: Refactoring [R] Kerievsky: Refactoring to Patterns [R2P] Nilsson: Applying Domain-Driven Design and Patterns [ADDDP]
27 Remember! Fill in the evaluation form and be a part of making Øredev even better. You will automatically be part of the evening lottery
DESIGN 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 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 23: Domain-Driven Design (Part 1)
1 Lecture 23: Domain-Driven Design (Part 1) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2005 2 Goals for this lecture Introduce the main concepts of Domain-Driven
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 informationCreating Models. Rob Allen, July 2014
Creating Models Rob Allen, July 2014 I make business websites 19ft.com The business logic is the hard part MVC MVC The model is the solution to a problem A problem A customer wants to plan a journey
More informationUnderstanding. Domain-Driven Design
Understanding Domain-Driven Design 1 Domain-Driven Design Is about developers and domain experts working together to create software that is both understandable and maintainable. a way to capture and spread
More informationEssential Skills for the Agile Developer. Agile. copyright Net Objectives, Inc.
Essential Skills for the Agile Developer Agile copyright 2010. Net Objectives, Inc. Lean for Executives Product Portfolio Management Business Lean Enterprise ASSESSMENTS CONSULTING TRAINING COACHING Team
More informationDesigning the M in MVC
Designing the M in MVC Rob Allen @akrabat ~ May 2017 ~ http://akrabat.com (slides at http://akrabat.com/talks) The business logic is the hard part MVC MVC DDD is an approach to help you manage the model
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 informationLecture Material. Design Patterns. Visitor Client-Server Factory Singleton
Lecture Material Design Patterns Visitor Client-Server Factory Singleton 1 Design Patterns Pattern A named generalization describing the elements and relationships of a solution for a commonly occurring
More informationKerievsky_book.fm Page 355 Thursday, July 8, :12 PM. Index
Kerievsky_book.fm Page 355 Thursday, July 8, 2004 12:12 PM Index A Absorbing class, 117 Abstract Factory, 70 71 Accept methods, 327 Accumulation methods, 315, 325 330 Accumulation refactorings Collecting
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. 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 informationChoice, Choices, Choices: Fat versus Thin Clients
Choice, Choices, Choices: Fat versus Thin Clients David Moskowitz Productivity Solutions, Inc. David Moskowitz Choices, Choices, Choices: Fat vs. Thin Clients Page 1 Agenda Definitions Myths Choices Approaches
More informationThe Design Patterns Matrix From Analysis to Implementation
The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley
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 informationAs a programmer, you know how easy it can be to get lost in the details
Chapter 1 Congratulations, Your Problem Has Already Been Solved In This Chapter Introducing design patterns Knowing how design patterns can help Extending object-oriented programming Taking a look at some
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 informationDDD and BDD. Dan North ThoughtWorks
DDD and BDD Dan North ThoughtWorks BDD and DDD Dan North ThoughtWorks What is Domain Driven Design? It s about focusing on the domain and letting it affect the software very much - Jimmy Nilsson (ADDDP)
More informationWin-Back Campaign- Re-Engagement Series
Win-Back Campaign- Re-Engagement Series At this point the re-engagement campaign has ended, so if the prospect still hasn t responded it s time to turn up the heat. NOTE: In the emails below, everywhere
More informationWork groups meeting 3
Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS
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 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 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 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 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 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 informationArchitecting and Implementing Domain-driven Design Patterns in.net
Architecting and Implementing Domain-driven Design Patterns in.net Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e WARNING This is NOT simply a shameless plug but a truly
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 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 informationSDN-Based Open Networking Building Momentum Among IT Decision Makers
SDN-Based Open Networking Building Momentum Among IT Decision Makers Two of the most important new enterprise technologies are open networking and softwaredefined networking (SDN). For the past few years,
More informationEnterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009
Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)
More information.NET Database Technologies. Entity Framework: Queries and Transactions
.NET Database Technologies Entity Framework: Queries and Transactions ORMs and query languages l With an ORM, queries must define data to be returned and criteria in terms of domain model objects and their
More informationHere is some code you may have seen in various places throughout your programs:
THE DISCRIMINATION NET: CATEGORIZING AND MANIPULATING DOMAIN OBJECTS In some applications it is common to receive a specification that says, For all that are s do .
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 informationDatabase Management System 9
Database Management System 9 School of Computer Engineering, KIIT University 9.1 Relational data model is the primary data model for commercial data- processing applications A relational database consists
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 informationGAVIN KING RED HAT CEYLON SWARM
GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Time Project Planning Non-agile Agile Refactoring Contents Basic Principles
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 informationDomain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements
Domain Driven Design IS An architectural methodology for evolving a software system that closely aligns to business requirements Domain Driven Design IS Domain First Focus on the Object Model Focus on
More informationSpam. Time: five years from now Place: England
Spam Time: five years from now Place: England Oh no! said Joe Turner. When I go on the computer, all I get is spam email that nobody wants. It s all from people who are trying to sell you things. Email
More informationDesign Patterns. CSC207 Fall 2017
Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the
More informationApplying Code Generation Approach in Fabrique Kirill Kalishev, JetBrains
november 2004 Applying Code Generation Approach in Fabrique This paper discusses ideas on applying the code generation approach to help the developer to focus on high-level models rather than on routine
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 informationAgile Architecture. The Why, the What and the How
Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile
More informationLearning patterns of application architecture by looking at code
Proceedings of the 11th WSEAS International Conference on COMPUTERS, Agios Nikolaos, Crete Island, Greece, July 26-28, 2007 577 Learning patterns of application architecture by looking at code PAULO SOUSA
More informationCHAPTER 6: CREATIONAL DESIGN PATTERNS
CHAPTER 6: CREATIONAL DESIGN PATTERNS SESSION I: OVERVIEW OF DESIGN PATTERNS, ABSTRACT FACTORY Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012 by Carlos E. Otero
More informationINCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM
INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming
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 informationMANAGING GOVERNMENT
MANAGING GOVERNMENT EMAIL HELLO! I m Scott Larson, MPA Records Management Analyst for Wright County 1. THE STRUGGLE IS REAL What once made email great has now become what makes it challenging SYMPTOMS
More information4.1 Introduction Programming preliminaries Constructors Destructors An example... 3
Department of Computer Science Tackling Design Patterns Chapter 4: Factory Method design pattern Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 4.1 Introduction.................................
More informationOODP OOAD Session 7a
OODP OOAD Session 7a 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:
More informationObject Persistence Design Guidelines
Object Persistence Design Guidelines Motivation Design guideline supports architects and developers in design and development issues of binding object-oriented applications to data sources The major task
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 informationTest How to Succeed in Test Automation Björn Hagström & Davor Crnomat, Testway AB
Test How to Succeed in Test Automation Björn Hagström & Davor Crnomat, Testway AB Introduction The need for Automation Cost of Automation Plan to Automate Tools Test Approach Summary The Need for Automation
More informationEEN118 LAB THREE. Section A - Conversions A1. Remembering how to start. A2. Exotic Canada
EEN118 LAB THREE The purpose of this lab is to ensure that you are confident with - and have had a lot of practice at - writing small clear functions that give precise control over repetitive tasks. The
More informationPatterns of learning
Design patterns Patterns of learning Suppose we want to learn how to play chess. First, we need to learn the basic rules. Then we need to learn the basic strategy/ principles (value of pieces, etc.). To
More informationRelationship Manager
Relationship Manager Graeme Geldenhuys 2009-07-10 In this article we are going to look at the problem surrounding object oriented programming and object relationships. We will look at the traditional way
More informationTackling Complexity in the Heart of Software. Domain-Driven Design 카페서비스개발팀 조영호
Tackling Complexity in the Heart of Software Domain-Driven Design 카페서비스개발팀 조영호 목차 1. Domain & Software 2. What is Domain-Driven Design? 3. Patterns of Domain-Driven Design 4. Conclusion 1. Domain & Software
More informationDesign Patterns. CSC207 Fall 2017
Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the
More information02 Features of C#, Part 1. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211
02 Features of C#, Part 1 Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 Module Overview Constructing Complex Types Object Interfaces and Inheritance Generics Constructing
More informationChapter 17 vector and Free Store. Bjarne Stroustrup
Chapter 17 vector and Free Store Bjarne Stroustrup www.stroustrup.com/programming Overview Vector revisited How are they implemented? Pointers and free store Allocation (new) Access Arrays and subscripting:
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 11 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap I Software Development Processes (cont.) I Project Planning I Design
More informationA Beginner s Guide to Successful Marketing
You ve got mail. A Beginner s Guide to Successful Email Marketing We believe that building successful email marketing campaigns has never been more important than it is now. But there s a problem; most
More informationSummary of the course lectures
Summary of the course lectures 1 Components and Interfaces Components: Compile-time: Packages, Classes, Methods, Run-time: Objects, Invocations, Interfaces: What the client needs to know: Syntactic and
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 information17. GRASP: Designing Objects with Responsibilities
17. GRASP: Designing Objects with Responsibilities Objectives Learn to apply five of the GRASP principles or patterns for OOD. Dr. Ziad Kobti School of Computer Science University of Windsor Understanding
More informationSoftware Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6
Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6 Some Terms: Architecture the manner in which the components of a computer
More informationPlan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?
Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going
More informationMicrosoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV. Vjekoslav Babić, MVP
Microsoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV Vjekoslav Babić, MVP About the Presenter Vjekoslav Babić consultant, trainer, blogger, author
More informationStrong signs your website needs a professional redesign
Strong signs your website needs a professional redesign Think - when was the last time that your business website was updated? Better yet, when was the last time you looked at your website? When the Internet
More informationIntroduction in Eventing in SOA Suite 11g
Introduction in Eventing in SOA Suite 11g Ronald van Luttikhuizen Vennster Utrecht, The Netherlands Keywords: Events, EDA, Oracle SOA Suite 11g, SOA, JMS, AQ, EDN Introduction Services and events are highly
More informationPreparing for Infrastructure
Chapter 6 Preparing for Infrastructure It s time to continue the exploration of applying DDD to our problem domain. There is no specific next step, but you may be wondering when I will start dealing with
More informationAde Miller Senior Development Manager Microsoft patterns & practices
Ade Miller (adem@microsoft.com) Senior Development Manager Microsoft patterns & practices Save time and reduce risk on your software development projects by incorporating patterns & practices, Microsoft's
More informationIdioms for Building Software Frameworks in AspectJ
Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,
More informationLessons learned so far... Wednesday, January 26, :16 PM
Consistency_and_Concurrency Page 1 Lessons learned so far... Wednesday, January 26, 2011 4:16 PM Last lecture: syntax: A cloud application is a java serial program that interacts with persistent instances
More informationDesign Patterns. CSC207 Winter 2017
Design Patterns CSC207 Winter 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe
More informationIMPORTANT WORDS AND WHAT THEY MEAN
MOBILE PHONES WHAT IS DATA Data is Internet. It can let you do lots of different things on your phone or tablet. You can send or receive texts, emails or photos, listen to music, watch TV shows, movies
More informationExtreme Java Productivity with Spring Roo and Spring 3.0
Extreme Java Productivity with Spring Roo and Spring 3.0 Rod Johnson Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Agenda Motivation
More informationWorking with Objects. Overview. This chapter covers. ! Overview! Properties and Fields! Initialization! Constructors! Assignment
4 Working with Objects 41 This chapter covers! Overview! Properties and Fields! Initialization! Constructors! Assignment Overview When you look around yourself, in your office; your city; or even the world,
More information9 quick wins every membership organisation should adopt
9 quick wins every membership organisation should adopt Working in a smaller membership organisation we know that email marketing isn t your only focus. You ve got other things going on and resource is
More informationJava Framework Implementing Design Patterns by the Use of JML and Contract4J
Java Framework Implementing Design Patterns by the Use of JML and Contract4J Gergely Kovásznai Department of Information Technology Eszterházy Károly College, Eger, Hungary kovasz@aries.ektf.hu December
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 informationResponsibilities. Using several specific design principles to guide OO design decisions.
Designing Objects with Responsibilities Using several specific design principles to guide OO design decisions. Challenge Old-school advice on OOD After identifying i your requirements and creating a domain
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 informationPlan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?
Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2010 Vol. 9, No. 1, January-February 2010 A Modern, Compact Implementation of the Parameterized
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 informationHOW TO WRITE RECURSIVE FUNCTIONS ON YOUR OWN
HOW TO WRITE RECURSIVE FUNCTIONS ON YOUR OWN In this tutorial, you ll learn - well, you ve already read the title - how to write recursive functions on your own. If you re the person to whom recursive
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 informationADAPTER. Topics. Presented By: Mallampati Bhava Chaitanya
ADAPTER Presented By: Mallampati Bhava Chaitanya Topics Intent Motivation Applicability Structure Participants & Collaborations Consequences Sample Code Known Uses Related Patterns Intent Convert the interface
More informationWeb Hosting. Important features to consider
Web Hosting Important features to consider Amount of Storage When choosing your web hosting, one of your primary concerns will obviously be How much data can I store? For most small and medium web sites,
More informationFoundations of Software Engineering Design Patterns -- Introduction
Foundations of Software Engineering Design Patterns -- Introduction Fall 2016 Department of Computer Science Ben-Gurion university Based on slides of: Nurit Gal-oz, Department of Computer Science Ben-Gurion
More informationTool Support for Complex Refactoring to Design Patterns
Tool Support for Complex Refactoring to Design Patterns Carmen Zannier 1, Frank Maurer 1 1 University of Calgary, Department of Computer Science, Calgary, Alberta, Canada T2N 1N4 {zannierc, maurer}@cpsc.ucalgary.ca
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 information2/23/04 Doc 10 State & Chain of Responsibility slide # 1
2/23/04 Doc 10 State & Chain of Responsibility slide # 1 CS 635 Advanced Object-Oriented Design & Programming Spring Semester, 2004 Doc 10 State & Chain of Responsibility Contents State... 2 Example -
More informationLet me begin by introducing myself. I have been a Progress Application Partner since 1986 and for many years I was the architect and chief developer
Let me begin by introducing myself. I have been a Progress Application Partner since 1986 and for many years I was the architect and chief developer for our ERP application. In recent years, I have refocused
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 31 Static Members Welcome to Module 16 of Programming in C++.
More informationObject-Oriented Design
Object-Oriented Design Lecture 20 GoF Design Patterns Behavioral Department of Computer Engineering Sharif University of Technology 1 GoF Behavioral Patterns Class Class Interpreter: Given a language,
More information