Șabloane de proiectare

Curs
8/10 (1 vot)
Conține 1 fișier: pdf
Pagini : 184 în total
Cuvinte : 8696
Mărime: 4.24MB (arhivat)
Publicat de: Eremia Kovacs
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Daniel Pop

Extras din curs

The Plan

• Introducing fundamental patterns (1

week)

• 21 design patterns will be covered

based on the case study presented in

the text book (9 weeks):

– Design Patterns: Elements of

Reusable Object-Oriented Software

• Remaining 2 patterns will be presented

as an exercise for designing a compiler

system (1 week)

• Last 3 lectures will be devoted to

another case study - Designing a Payroll

System – consolidate patterns usage

Definition

• 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, in such a way that you can use this

solution a million times over, without ever doing it the same way

twice. [Christopher Alexander, Sara Ishikawa, Murray Silverstein,

Max Jacobson, Ingrid Fiksdahl-King, and Shlomo Angel. A Pattern

Language. Oxford University Press, New York, 1977]

• 5 essential elements:

– Pattern name

– Problem description

– Solution

– Consequences

– Implementation

Șabloane de proiectare

Types of Patterns

• Architectural Patterns: MVC, Layers

• Design Patterns: Singleton, Observer etc

– We’ll cover these ones in this course

• GUI Design Patterns: Window per task, Disabled irrelevant things,

Explorable interface

• Database Patterns: decoupling patterns, resource patterns, cache

patterns

• Concurrency Patterns: Double buffering, Lock object, Producerconsumer,

Asynchronous processing

• Enterprise (J2EE) Patterns: Data Access Object, Data Transfer Object

• GRASP (General Responsibility Assignment Patterns): Low

coupling/high cohesion, Controller, Law of Demeter (don’t talk to

strangers), Expert, Creator

• Anti-patterns = bad solutions largely observed: God class,

Singletonitis, Basebean, CallSuper

OOD Key Principles

Motto: “Imitation is the sincerest form of not being stupid.”

DEFINITION [Design principle] A design principle is a basic tool or technique that can be

applied to designing or writing code to make that code more maintainable, flexible, or

extensible.

Key OOD principles are (S.O.L.I.D):

• SRP

• OCP

• LSP

• ISP

• DIP

CODE should BE readable, extendable, modifiable, testable, refactorable etc.

Single Responsibility Principle

A class should have one and only one reason to change, meaning that a

class should have only one job.

ONLY one reason to change something!

Code will be simpler and easier to maintain.

Example: Container and Iterator (Container manages objects; Iterator traverses the

container)

How to spot multiple responsibilities? Forming sentences ending in itself.

Single Responsibility Principle

Automobile

Start()

Stop()

ChangeTires()

Drive()

GetOilLevel()

The Automobile start itself.

The Automobile stop itself.

The Automobile changeTires itself.

The Automobile Drive itself.

The Automobile getOilLevel itself.

Automobile

Start()

Stop()

GetOilLevel()

Driver

Drive(Automobile)

Mechanic

ChangeTires(Automobile)

NOK

OK

A class should have one and only one reason to change, meaning that a

class should have only one job.

ONLY one reason to change something!

Code will be simpler and easier to maintain.

Example: Container and Iterator (Container manages objects; Iterator traverses the

container)

How to spot multiple responsibilities? Forming sentences ending in itself.

Open-Close Principle

Classes should be open for extension and closed for modification.

Allowing change, but without modifying existing code. It offers flexibility.

Use inheritance to extend/change existing working code and don’t touch working code.

OCP can also be achieved using composition.

Open-Close Principle

Classes should be open for extension and closed for modification.

Allowing change, but without modifying existing code. It offers flexibility.

Use inheritance to extend/change existing working code and don’t touch working code.

OCP can also be achieved using composition.

Preview document

Șabloane de proiectare - Pagina 1
Șabloane de proiectare - Pagina 2
Șabloane de proiectare - Pagina 3
Șabloane de proiectare - Pagina 4
Șabloane de proiectare - Pagina 5
Șabloane de proiectare - Pagina 6
Șabloane de proiectare - Pagina 7
Șabloane de proiectare - Pagina 8
Șabloane de proiectare - Pagina 9
Șabloane de proiectare - Pagina 10
Șabloane de proiectare - Pagina 11
Șabloane de proiectare - Pagina 12
Șabloane de proiectare - Pagina 13
Șabloane de proiectare - Pagina 14
Șabloane de proiectare - Pagina 15
Șabloane de proiectare - Pagina 16
Șabloane de proiectare - Pagina 17
Șabloane de proiectare - Pagina 18
Șabloane de proiectare - Pagina 19
Șabloane de proiectare - Pagina 20
Șabloane de proiectare - Pagina 21
Șabloane de proiectare - Pagina 22
Șabloane de proiectare - Pagina 23
Șabloane de proiectare - Pagina 24
Șabloane de proiectare - Pagina 25
Șabloane de proiectare - Pagina 26
Șabloane de proiectare - Pagina 27
Șabloane de proiectare - Pagina 28
Șabloane de proiectare - Pagina 29
Șabloane de proiectare - Pagina 30
Șabloane de proiectare - Pagina 31
Șabloane de proiectare - Pagina 32
Șabloane de proiectare - Pagina 33
Șabloane de proiectare - Pagina 34
Șabloane de proiectare - Pagina 35
Șabloane de proiectare - Pagina 36
Șabloane de proiectare - Pagina 37
Șabloane de proiectare - Pagina 38
Șabloane de proiectare - Pagina 39
Șabloane de proiectare - Pagina 40
Șabloane de proiectare - Pagina 41
Șabloane de proiectare - Pagina 42
Șabloane de proiectare - Pagina 43
Șabloane de proiectare - Pagina 44
Șabloane de proiectare - Pagina 45
Șabloane de proiectare - Pagina 46
Șabloane de proiectare - Pagina 47
Șabloane de proiectare - Pagina 48
Șabloane de proiectare - Pagina 49
Șabloane de proiectare - Pagina 50
Șabloane de proiectare - Pagina 51
Șabloane de proiectare - Pagina 52
Șabloane de proiectare - Pagina 53
Șabloane de proiectare - Pagina 54
Șabloane de proiectare - Pagina 55
Șabloane de proiectare - Pagina 56
Șabloane de proiectare - Pagina 57
Șabloane de proiectare - Pagina 58
Șabloane de proiectare - Pagina 59
Șabloane de proiectare - Pagina 60
Șabloane de proiectare - Pagina 61
Șabloane de proiectare - Pagina 62
Șabloane de proiectare - Pagina 63
Șabloane de proiectare - Pagina 64
Șabloane de proiectare - Pagina 65
Șabloane de proiectare - Pagina 66
Șabloane de proiectare - Pagina 67
Șabloane de proiectare - Pagina 68
Șabloane de proiectare - Pagina 69
Șabloane de proiectare - Pagina 70
Șabloane de proiectare - Pagina 71
Șabloane de proiectare - Pagina 72
Șabloane de proiectare - Pagina 73
Șabloane de proiectare - Pagina 74
Șabloane de proiectare - Pagina 75
Șabloane de proiectare - Pagina 76
Șabloane de proiectare - Pagina 77
Șabloane de proiectare - Pagina 78
Șabloane de proiectare - Pagina 79
Șabloane de proiectare - Pagina 80
Șabloane de proiectare - Pagina 81
Șabloane de proiectare - Pagina 82
Șabloane de proiectare - Pagina 83
Șabloane de proiectare - Pagina 84
Șabloane de proiectare - Pagina 85
Șabloane de proiectare - Pagina 86
Șabloane de proiectare - Pagina 87
Șabloane de proiectare - Pagina 88
Șabloane de proiectare - Pagina 89
Șabloane de proiectare - Pagina 90
Șabloane de proiectare - Pagina 91
Șabloane de proiectare - Pagina 92
Șabloane de proiectare - Pagina 93
Șabloane de proiectare - Pagina 94
Șabloane de proiectare - Pagina 95
Șabloane de proiectare - Pagina 96
Șabloane de proiectare - Pagina 97
Șabloane de proiectare - Pagina 98
Șabloane de proiectare - Pagina 99
Șabloane de proiectare - Pagina 100
Șabloane de proiectare - Pagina 101
Șabloane de proiectare - Pagina 102
Șabloane de proiectare - Pagina 103
Șabloane de proiectare - Pagina 104
Șabloane de proiectare - Pagina 105
Șabloane de proiectare - Pagina 106
Șabloane de proiectare - Pagina 107
Șabloane de proiectare - Pagina 108
Șabloane de proiectare - Pagina 109
Șabloane de proiectare - Pagina 110
Șabloane de proiectare - Pagina 111
Șabloane de proiectare - Pagina 112
Șabloane de proiectare - Pagina 113
Șabloane de proiectare - Pagina 114
Șabloane de proiectare - Pagina 115
Șabloane de proiectare - Pagina 116
Șabloane de proiectare - Pagina 117
Șabloane de proiectare - Pagina 118
Șabloane de proiectare - Pagina 119
Șabloane de proiectare - Pagina 120
Șabloane de proiectare - Pagina 121
Șabloane de proiectare - Pagina 122
Șabloane de proiectare - Pagina 123
Șabloane de proiectare - Pagina 124
Șabloane de proiectare - Pagina 125
Șabloane de proiectare - Pagina 126
Șabloane de proiectare - Pagina 127
Șabloane de proiectare - Pagina 128
Șabloane de proiectare - Pagina 129
Șabloane de proiectare - Pagina 130
Șabloane de proiectare - Pagina 131
Șabloane de proiectare - Pagina 132
Șabloane de proiectare - Pagina 133
Șabloane de proiectare - Pagina 134
Șabloane de proiectare - Pagina 135
Șabloane de proiectare - Pagina 136
Șabloane de proiectare - Pagina 137
Șabloane de proiectare - Pagina 138
Șabloane de proiectare - Pagina 139
Șabloane de proiectare - Pagina 140
Șabloane de proiectare - Pagina 141
Șabloane de proiectare - Pagina 142
Șabloane de proiectare - Pagina 143
Șabloane de proiectare - Pagina 144
Șabloane de proiectare - Pagina 145
Șabloane de proiectare - Pagina 146
Șabloane de proiectare - Pagina 147
Șabloane de proiectare - Pagina 148
Șabloane de proiectare - Pagina 149
Șabloane de proiectare - Pagina 150
Șabloane de proiectare - Pagina 151
Șabloane de proiectare - Pagina 152
Șabloane de proiectare - Pagina 153
Șabloane de proiectare - Pagina 154
Șabloane de proiectare - Pagina 155
Șabloane de proiectare - Pagina 156
Șabloane de proiectare - Pagina 157
Șabloane de proiectare - Pagina 158
Șabloane de proiectare - Pagina 159
Șabloane de proiectare - Pagina 160
Șabloane de proiectare - Pagina 161
Șabloane de proiectare - Pagina 162
Șabloane de proiectare - Pagina 163
Șabloane de proiectare - Pagina 164
Șabloane de proiectare - Pagina 165
Șabloane de proiectare - Pagina 166
Șabloane de proiectare - Pagina 167
Șabloane de proiectare - Pagina 168
Șabloane de proiectare - Pagina 169
Șabloane de proiectare - Pagina 170
Șabloane de proiectare - Pagina 171
Șabloane de proiectare - Pagina 172
Șabloane de proiectare - Pagina 173
Șabloane de proiectare - Pagina 174
Șabloane de proiectare - Pagina 175
Șabloane de proiectare - Pagina 176
Șabloane de proiectare - Pagina 177
Șabloane de proiectare - Pagina 178
Șabloane de proiectare - Pagina 179
Șabloane de proiectare - Pagina 180
Șabloane de proiectare - Pagina 181
Șabloane de proiectare - Pagina 182
Șabloane de proiectare - Pagina 183
Șabloane de proiectare - Pagina 184

Conținut arhivă zip

  • Sabloane de proiectare.pdf

Alții au mai descărcat și

Curs HTML

Internetul a fost descris ca „o colectie larga de retele“ sau ca o „retea de retele“. Desi ambele definitii sînt corecte, nici una nu surprinde...

Visual C++

Dupa cum multi dintre noi cunosc ,atomul este format din particule materiale si anume un nucleu incarcat electric pozitiv si mai multi electroni...

Limbajul SQL

CAPITOLUL 1. TEORIA BAZELOR DE DATE RELATIONALE 1.1. MODELUL RELATIONAL Modelul relational a fost propus de catre IBM si a revolutionat...

Programare în Java Script

Java - Sectiunea 3 Reducerea efectului de palpaire la crearea animatiilor Efectul suparator de palpaire a imaginii in cazul animatiilor, se poate...

Structuri de Date și Algoritmi

Arbori Binari Optimi Despre arbori binari optimi putem vorbi atunci cand, pentru fiecare dintre cheile unui arbore binar ordonat cunoastem...

Curs C++

Limbajele C si C++ sunt limbaje de programare de nivel înalt. Limbajul C a aparut în anii 1970 si a fost creat de Dennis Ritchie în...

Baze de Date

CAPITOLUL I INTRODUCERE IN BAZE DE DATE CURSUL 1 1. Ce este o baza de date? La inceput calculatoarele au fost utilizate numai pentru calcule...

Grafică pe calculator

Computer Graphics Cristian Rusu Office 3-8 cristian.rusu@ucv.cl What will be? It will not be an ENGLISH course! ENGLISH will be an...

Te-ar putea interesa și

Elaborarea Sistemului de Metadate Statistice Destinate Asigurării Funcționalității Depozitului de Date al Biroului Național de Statistică

INTRODUCERE Actualitatea temei. În condiţiile zilei de astăzi datele şi previziunile statistice au o mare importanţă în cadrul economiei...

Navision Prezentare ERP

Dezvoltarea economică din ultimul deceniu a cunoscut cote din ce în ce mai mari. Modul în care intreprinderile îşi desfaşoară activitatea este...

Șabloane de proiectare a interfețelor utilizator pentru aplicații web

Capitolul 1 Introducere Lucrarea prezinta sabloanele de proiectare , ce sunt acestea si cum ne ajuta ele in rezolvarea problemelor de proiectare...

Prelucrarea Metalelor și Aliajelor prin Deformare Plastică

1.1. PRELUCRAREA METALELOR ŞI ALIAJELOR PRIN DEFORMARE PLASTICĂ 1.1.1. Noţiuni generale Deformarea plastică reprezintă totalitatea fenomenelor de...

Joc Java snake folosind șabloane de proiectare

1 Tema proiectului Realizarea unui joc folosind sabloane de proiectare (patterns) in cadrul unei aplicatii la alegere. 2 Cerinte - utilizarea a...

Sistemul Automatizat de Proiectare GRAȚIA

1. Caracteristica Sistemului Automatizat de Proiectare a Îmbrăcămintei SAP „Graţia” O abordare modernă în proiectarea îmbrăcămintei în sistemul...

Înființare afacere

I. DESCRIEREA AFACERII A. Descrierea agentului economic 1. Date de identificare a agentului economic - Numele complet al agentului economic...

Șabloane

ARGUMENT În atelierul de lăcătuşerie se realizeză o gamă variată de produse şi lucrări , folosind diferite materiale metalice. Dintre acestea o...

Ai nevoie de altceva?