56
8/2001 ץץ ץץץץץץץ ץץץץץץ ץץ. ץץץץץ ץץץץץ ץץץץץץ ץץץץץץץ ץץ"ץ1 Design Patterns ץץץץץץ ץץץץץץ

1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

Embed Size (px)

Citation preview

Page 1: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 1

Design Patternsלמנתחי מערכות

Page 2: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 2

תוכן

UMLמבוא ל- •

UML ב- Use Case Modelingה- •

Conceptual Modelתוצרי ה- •

Entity Classes ל- Use Casesקישור בין ה- •

MVC – Patternה- •

Cohesion וה- Couplingעקרונות ה- •

Facade – Design Patternה- •

Adapter Design Patternה – •

Page 3: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 3

UMLUMLמהו •

מטרות•

•Models/Diagrams

UMLמחזור החיים בפיתוח ו- •

•UML Diagrams

UMLכלים התומכים ב- •

Page 4: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 4

UMLמהו •Unified Modeling Language

משמשת לעיצוב, הגדרה, בניה, תיעוד תוצרים•• The UML is a language for specifying, visualizing,

constructing, and documenting the artifacts of software systems, as well as for business modeling and othe non-software systems.

• The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems.

Page 5: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 5

מטרות

OOניתוח ועיצוב מערכות על פי מתודולוגיית ה- •

שפה משותפת בין משתמש/מנתח •מערכות/מעצב מערכות/מתכנת

קל לתחזוקה•

פשטות•

Page 6: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 6

Models and Diagrams

Use CaseDiagramsUse Case

DiagramsUse CaseDiagrams

ScenarioDiagramsScenario

DiagramsCollaborationDiagrams

StateDiagramsState

DiagramsComponentDiagrams

ComponentDiagramsComponent

DiagramsDeploymentDiagrams

StateDiagramsState

DiagramsObjectDiagrams

ScenarioDiagramsScenario

DiagramsStatechartDiagrams

Use CaseDiagramsUse Case

DiagramsSequenceDiagrams

StateDiagramsState

DiagramsClassDiagrams

ActivityDiagrams

A model is a complete description of a system from a particular perspective

Models

Page 7: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 7

UMLמחזור החיים בפיתוח ו-

Requirements

Design

Implementation

Test

Analysis

Use CaseModel

DesignModel

Depl.Model

Impl.Model

AnalysisModel

TestModel

UML diagrams provide views into each model

Each workflow is associated with one or more models.

Page 8: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 8

Use Case Driven

Req.ts Impl. Test

Use Cases Model

Analysis Design

Page 9: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 9

UMLכלים התומכים ב-

•Rational Rose

•Select

•Objecteering

•Together

•Visio

Page 10: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 10

Use Case Modelingמבוא••Actors•Use Cases•Use Case DiagramUse Caseתיעוד ה- •מערכת ספריה•

Page 11: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 11

Use Case Modelingמבוא ל-

נבנה בשלב הגדרת הדרישות•

וקשרים ביניהםUses Cases, Actorsמורכב מ- •

מטרות•

Object Orientedמתאים גם למערכת שאינה •

Page 12: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 12

Use Case Modelingמטרות ה-

דרך סיסטמטית ואינטואיטיבית להגדרת דרישות•קשר בין המשתמש למפתח•תאור ברור וממצה של מה אמורה לבצע המערכת •

מנקודת המבט של המשתמששפה ברורה בין כל בעלי התפקידים •Test Casesבניית •

תאור פונקצינלי של המערכת מנקודת ראות המשתמש

Page 13: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 13

Actors

כל מי או מה שיוזם פעילות ישירה •במערכת ו/או מקבל תוצר ישיר

מהמערכתספרן

Page 14: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 14

Use Casesתהליך פונקציונלי אחד ושלם מנקודת ראות •

המשתמשבצע השאלה•עדכן רישום•בצע הקצאת מקום•הוסף ספר•עדכן או מחק קורא••Add Item•Make Reservation

בצע השאלה

Page 15: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 15

Use Caseתעוד ה-

תאור של מה לבצע ולא איך לבצע•Actorsשפה דומה לטרמינולוגיה בשימוש ה- •הלקוח חייב לאשר את התאור ולכן…•Use Caseתבנית דוגמה לתעוד •Activity Diagramניתן לתאר גם ע”י •

Page 16: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 16

Use Caseתבנית דוגמה לתעוד

שם:

מטרה:

משתמשים:

סלול עיקרי:מ

סלולים חליפייםמ

תנאי התחלה:

תנאי סיום:

יוצאים מהכלל:

דרישות פונקציונליות

דרישות לא פונקציונליות

Name:

Goal:

Actors:

Primary Flow:

Alternate Flow

Pre-Conditions:

Post-Conditions:

Exceptions:

Functional Requirements

Non Functional Requirements

Page 17: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 17

Primary/Alternate Flow

Primary/Alternate Flowכדאי לבנות את סעיף ה- •בצורה של טבלה

תגובת המערכתActorsפעילות ה-

Page 18: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 18

תרגיל - ספריה

הספרייה משאילה ספרים לקוראים•

פרטי הספרים והקוראים רשומים במערכת•

הספרייה רוכשת מידי פעם ספרים חדשים. המערכת •אמורה לתמוך בניהול הספרים אבל לא בתהליך

הרכישה.

חלק מהספרים קיימים במספר עותקים•

עותקים של ספרים ישנים מוצאים מהספרייה אם הם •במצב גרוע )בתחילת כל חודש הספרן מפיק דו”ח מצב(

הספרן עובד מול הקוראים ומתחזק את המערכת•

כל קורא יכול לקבל מספר ספרים בו זמנית•

Page 19: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 19

תרגיל - ספריה -המשך

כשקורא מבקש ספר שלא נמצא בספריה או נמצא •אצל קורא אחר הספרן מחליט אם להכניס את הקורא

לתור ממתינים.ניתן לבטל קורא מרשימת הממתינים בצורה יזומה.•ברגע שספר נרכש או מוחזר לספריה ויש עבורו תור •

ממתינים הקורא הראשון ברשימה מקבל הודעה מתאימה.

הספרן יכול להוסיף, לבטל, לעדכן נתונים של •הקוראים, הספרים והעותקים במערכת.

של ההשאלות, ההחזרות ותור הממתינים ההיסטוריה•נשמרת במערכת

Page 20: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 20

Use Case Diagramמערכת ספריה –

Manage borrowers

Remove reservation

Manage books

Manage copies

Librarian

Scheduler

Lend book

<<include>>

Customer

Return book

Produce status report

Add reservation

Librarian

Page 21: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 21

Conceptual Model

במערכתEntity Classesבשלב זה יש לאתר את ה- •

העיקרייםAttributes יש לאתר את ה- Classעבור כל •

ואת Operationsאין צורך להוסיף בשלב זה את ה- •Classesהקשרים בין ה-

יש לקבוע את השמות והטיפוסי Attributesעבור ה- •הכללייים בלבד

Page 22: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 22

Conceptual Modelמערכת ספריה –

• Reader : id, firstName, lastName

• Title : isbn, name, author

• Copy : copyId, status

• Loan : loanDate, returnDate

• Reservation : reservationDate

Page 23: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 23

Conceptual Model – מערכת ספריה

Borrowerid : Longname : Stringaddress : Address

CopycopyId : Integerstatus : char

LoanloanDate : DatereturnDate : Date

0..n

1

0..n

1

Has

0..*

1

may-be-loaned-in

Bookisbn : ISBNname : Stringauthor : StringlendingTime : Integer

0..n 10..n 1

Copy-of

ReservationreservationDate : Date

0..n

1

0..n

1

Has

0..*

1

may-be-reserved-in

0..*

1

0..*

1

Page 24: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 24

Sequence Diagram

מבוא•

Sequence Diagramגרסה ראשונה של ה- •

Sequence Diagramדוגמה של •

Page 25: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 25

Sequence Diagramמבוא ל-

Use Caseמתאר את הפעילויות בתוך •

מורכביםOperationsניתן לתאר באמצעותו גם •

מדגיש את גורם הזמן •

מציג את האינטראקציה בין האובייקטים•

למערכתActorsמציג את האינטראקציה בין ה- •

Sequence Diagramשלבים בבניית ה- •

Page 26: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 26

Sequence Diagramגרסה ראשונה של ה-

: Librarian : LendBookForm

displayCustomers( )

selectCustomer( )

displayBooks( )

selectBook( )

registerLoan( )

Page 27: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 27

Model-View-Controller Architecture• Separation between the "GUI", the data and

the business logic• The model layer

– Corresponds to the "real world". – Represents the Conceptual Model– Does not have any user interface element

• The view layer– Visible to the end user– Typically there is one view class for each

dialog/window in the GUI• The control layer

– Controls the interaction between the model and the view

Page 28: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 28

Entity Classes

• Hold Information

• Eventually may be mapped to tables in the Detailed Design Phase

• Usually business entities that have meaning to the end user

• Usually found in the previous step )Conceptual Model(

• Corresponds to the MODEL layer of the MVC Architecture

Book

Page 29: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 29

Boundary Classes• Lays on the boundary between the system and the outside

world

• Added to show the interaction with the user or another system

• Usually mapped to forms and windows of the application and interfaces to other applications

• In this phase, the purpose is to capture and document the interface requirements, not to show how the interface is implemented

• The implementation is dependent upon the application framework that is chosen later in the detailed design phase

• Corresponds to the VIEW layer of the MVC Architecture

LendBookForm

Page 30: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 30

Control Classes

• Typically, one control class for a use case

• Manages the flow of events

• Manages the entity classes

• Middle layer between the boundary classes and the entity classes

• Corresponds to the CONTROLLER layer of the MVC Architecture

LendBookManager

Page 31: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 31

MVCבצע השאלה – כולל

: Librarian : LendBookWindow : LendBookManager : Borrower : Book : Copy : Loan : Reservation

displayReaders( )

displayBooks( )

register( )

getReaderList( )getList( )

getBookList( )getList( )

getStatus( )

register( )

updateStatus( )

delete( )

Reserveation Found

Page 32: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 32

Cohesionעקרונות ה- – A class is responsible for many things in different areas– A class is responsible for a too complex task in the same

area

Page 33: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 33

Low Cohesion Problems

• Hard to comprehend

• Hard to reuse

• Hard to maintain

• Delicate: constantly effected by change

Page 34: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 34

High Cohesion

• Assign a responsibility so that cohesion remains high

• Cohesion is a measure of how strongly related and focused the responsibilities of a class are

• A class with low cohesion does many unrelated things or does too much work

Page 35: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 35

Employee- id- firstName- lastName- maritalStatus- role- birthDate- lastRole- numberOfChildern- lastOfficeBuilding- lastOfficefloor- lastOfficeRoomNumber- lastActiivityType- lastActivityDate- lastActivityPoints- lastActivityNumberOfPersons- lastBasicSalary- lastBasicTax- lastSalaryDate- numberOfSalaries- country- city- street- houseNumber- tel- mobile- previousFirstName- previousLastName- previousCountry- previousCity- previousStreet- previousHouseNumber- previousTel- previousMobile

+ manyOPerations()

Low Cohesion

Page 36: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 36

Cohesionכלים לפתרון בעיות ה-

• Inheritance

• Aggregation

• Divide and Conquer

Page 37: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 37

Couplingעקרונות ה-

• Coupling is a measure of how strongly one class is connected to, has knowledge of, or relies upon other classes

Page 38: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 38

High Coupling Problems

• Harder to understand in isolation

• Harder to reuse because its use requires the additional presence of the classes it is dependent upon

Page 39: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 39

High Coupling

A

C

E

B

F

G

J

D

I

H

Page 40: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 40

• Assign a responsibility so that its placement does not increase the coupling

• Consider GOF Design Patterns

Couplingכלים לפתרון בעיות ה-

Page 41: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 41

בעיה

Text

+ display()+ clear()

Client4

Triangle

+ draw()+ hide()

Client3 Rectangle

+ draw()+ hide()

Client1

Client2

Circle

+ draw()+ hide()

Page 42: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 42

First Improvement

Triangle

+ draw()+ hide()

Rectangle

+ draw()+ hide()

Circle

+ draw()+ hide()

Shape

+ draw()+ hide()

Client1

Client2

Client3

Client4

Text

+ display()+ clear()

Page 43: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 43

Second Improvement - Adapter

Triangle

+ draw()+ hide()

Rectangle

+ draw()+ hide()

Circle

+ draw()+ hide()

Text

+ display()+ clear()

Client4

Client3

Client2

Client1

Shape

+ draw()+ hide()

TextShape

+ draw()+ hide()

<<implements>>

Page 44: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 44

Adapter

• Converts the interface of a class into another interface clients expect.

• Adapter lets classes work together that could not otherwise because of incompatible interfaces )GoF(

Page 45: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 45

Object Adapter – General Solution

Target

+ request()

Adapter

+ request()

Adaptee

+ specificRequest()

Return adaptee.specificRequest)(

Page 46: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 46

Object Adapter - Advantages

• The adapted object conforms exactly to the expected interface

• The Adaptee object is encapsulated and hidden from the client

Page 47: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 47

Class Adapter – General Solution

Target

+ request()

Adaptee

+ specificRequest()

Adapter

+ request()

<<implements>>return specificRequest()

Page 48: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 48

בעיה מסוג אחר

Client1

Client2

Client3

Font

TextType

TextLabel

TextSize

Client4

TextField

Page 49: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 49

Facadeפתרון -

Client1

Client2

Client3

Client4

TextField

TextSize

TextLabel

TextType

TextFieldFacade

Font

Page 50: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 50

Facade

• Provides a unified interface to a set of interfaces in a subsystem

• Defines a higher-level interface that makes the subsystem easier to use

Page 51: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 51

Façade - General Solution

C2C3

C5 C6

C4

Client

C1

Facade

C7

Page 52: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 52

Façade - Advantages

• The client is shielded from the subsystem components. This makes the system easier to use

• There is weak coupling between clients and subsystems

• Clients can still communicate directly with susbsystems if necessary

Page 53: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 53

Pattern Category

• Creational

• Structural

• Behavioral

Page 54: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 54

Creational Patterns

• Handle the instanciation process )how, when, and what objects are created(

• Handle the configuration of classes and objects• Allows a system to work with "product" objects

that vary in structure and functionality• Abstract Factory • Builder• Factory Method• Prototype• Singleton

Page 55: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 55

Structural Patterns

• Handle the way classes and objects are used in larger structures, and separate interfaces from instanciation

• Adapter

• Bridge

• Composite

• Decorator

• Façade

• Flyweight

• Proxy

Page 56: 1 8/2001כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ Design Patterns למנתחי מערכות

8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 56

Behavioral Patterns• Handle algorithms and the division of responsibility

between objects, and dynamic interaction between classes and objects.

• Handle the communication between objects, not only structure

– Chain of Responsibility– Command– Interpreter– Iterator– Mediator– Memento– Observer– State– Strategy– Template Method– Visitor