Ș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)
Cost: Gratis
Profesor îndrumător / Prezentat Profesorului: Daniel Pop

Extras din document

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

Arhitectura Calculatoarelor

1.1. Sistemul de calcul 1.1.1. Definiţii Sistemul de calcul (SC, System Computer sau calculator) este reprezentat de o structură destinată...

Fisiere in Limbajul C

Capitolul I Fisiere in ingineria programarii in C 1.1 Generalitati Un fisier este o multime de informatii referitoare la o clasa de obiecte...

Ingineria Sistemelor de Programe - Capitolul 2

Capitolul II Structuri complexe de date in ingineria programarii 1. Generalitati Variabilele utilizate in Limbajul C/C++, din punct de vedere al...

Tehnologia Client-Server in Arhitectura Sistemelor de Baze de Date Modele de Arhitectura

1. TEHNOLOGIA CLIENT/SERVER ÎN ARHITECTURA SISTEMELOR DE BAZE DE DATE. MODELE DE ARHITECTURĂ 1.1. Tehnologia client/server în arhitectura SGBD...

Analiza Multidimensionala

Modelarea (multi)dimensională presupune generarea unui cub OLAP (hipercub/ cub multidimensional), cu ajutorul căruia se poate modela aspectul...

Fundamente HTML

Orice document HTML incepe cu notatia <html> si se termina cu notatia </html>. Astfel de perechi de marcaje sau etichete (acolo unde sunt perechi)...

Structuri de Date și Algoritmi - Curs 1

Curs 1 - Introducere. Structuri de date - noţiuni generale Introducere Tipuri de bază. Pointeri. Tablouri. Paradigme de programare Programare...

Ai nevoie de altceva?