Tài liệu Nhập môn Công nghệ phần mềm - Thiết kế hướng đối tượng - Nguyễn Thị Minh Tuyền: Nguyễn Thị Minh Tuyền 
Thiết kế hướng đối tượng 
Nội dung của slide này dựa vào các slides của Ian Sommerville 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.   Thiết kế hướng đối tượng sử dụng UML 
2.   Thiết kế mẫu 
2 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.   Thiết kế hướng đối tượng sử dụng UML 
2.   Thiết kế mẫu 
3 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Phát triển hướng đối tượng 
v Phân tích, thiết kế và lập trình hướng đối 
tượng có liên quan với nhau nhưng tách rời 
nhau. 
v Phân tích hướng đối tượng liên quan đến việc 
phát triển mô hình đối tượng của miền ứng 
dụng. 
v Thiết kế hướng đối tượng liên quan đến việc 
phát triển mô hình hệ thống hướng đối tượng 
để cài đặt các yêu cầu. 
v Lập trình hướng đối tượng liên quan đến việc 
hiện thực hóa thiết kế hướng đối tượng sử 
dụng ngôn ngữ lập trình hướng đối tượng, ví 
dụ như Java hoặc C++. 
4 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Đối tượng và lớp đối tượng 
v Đối tượng là một thực ...
                
              
                                            
                                
            
 
            
                 50 trang
50 trang | 
Chia sẻ: putihuynh11 | Lượt xem: 866 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang mẫu tài liệu Nhập môn Công nghệ phần mềm - Thiết kế hướng đối tượng - Nguyễn Thị Minh Tuyền, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Nguyễn Thị Minh Tuyền 
Thiết kế hướng đối tượng 
Nội dung của slide này dựa vào các slides của Ian Sommerville 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.   Thiết kế hướng đối tượng sử dụng UML 
2.   Thiết kế mẫu 
2 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.   Thiết kế hướng đối tượng sử dụng UML 
2.   Thiết kế mẫu 
3 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Phát triển hướng đối tượng 
v Phân tích, thiết kế và lập trình hướng đối 
tượng có liên quan với nhau nhưng tách rời 
nhau. 
v Phân tích hướng đối tượng liên quan đến việc 
phát triển mô hình đối tượng của miền ứng 
dụng. 
v Thiết kế hướng đối tượng liên quan đến việc 
phát triển mô hình hệ thống hướng đối tượng 
để cài đặt các yêu cầu. 
v Lập trình hướng đối tượng liên quan đến việc 
hiện thực hóa thiết kế hướng đối tượng sử 
dụng ngôn ngữ lập trình hướng đối tượng, ví 
dụ như Java hoặc C++. 
4 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Đối tượng và lớp đối tượng 
v Đối tượng là một thực thể có một trạng thái và 
một tập các thao tác hoạt động trên trạng thái 
đó 
§  Trạng thái được biểu diễn bằng một tập các thuộc tính 
của đối tượng. 
§  Thao tác liên quan đến các dịch vụ mà đối tượng cung 
cấp cho các đối tượng khác (client) khi client yêu cầu 
các dịch vụ này. 
v Lớp đối tượng được sử dụng như một template 
cho các đối tượng 
§  Bao gồm khai báo tất cả các thuộc tính và dịch vụ liên 
quan đến một đối tượng trong lớp đó. 
5 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Quy trình thiết kế hướng đối tượng 
v Gồm việc thiết kế các lớp đối tượng và quan hệ 
giữa các lớp này. 
v Các hệ thống hướng đối tượng thường dễ thay 
đổi hơn so với hệ thống được phát triển dựa 
vào các phương pháp chức năng. 
§  Đối tượng bao gồm cả dữ liệu và các thao tác trên dữ 
liệu. Do đó chúng thường dễ hiểu và dễ thay đổi hơn 
các thực thể độc lập. 
v Việc thay đổi cài đặt của một đối tượng hay 
việc thêm các dịch vụ không gây ảnh hưởng 
đến các đối tượng của hệ thống. 
6 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các giai đoạn của quy trình thiết kế 
v Để phát triển thiết kế hệ thống từ khái niệm đến 
chi tiết, ta cần tiến hành các hoạt động sau: 
7 
•  Định nghĩa ngữ cảnh và các chế độ sử dụng hệ thống 
•  Thiết kế kiến trúc hệ thống 
•  Nhận diện các đối tượng hệ thống quan trọng 
•  Phát triển các mô hình thiết kế 
•  Đặc tả giao diện đối tượng 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các giai đoạn của quy trình 
• Định nghĩa ngữ cảnh và các chế độ sử dụng hệ thống 
•  Thiết kế kiến trúc hệ thống 
•  Nhận diện các đối tượng hệ thống quan trọng 
•  Phát triển các mô hình thiết kế 
• Đặc tả giao diện đối tượng. 
8 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ngữ cảnh hệ thống và các tương tác 
v Việc hiểu mối quan hệ giữa phần mềm đang 
thiết kế và môi trường bên ngoài là cần thiết 
§  quyết định việc cung cấp các chức năng của hệ thống 
như thế nào và 
§  cách cấu trúc hệ thống để giao tiếp với môi trường của 
nó. 
v Việc hiểu ngữ cảnh cũng giúp ta thiết lập ranh 
giới của hệ thống. 
§  Việc thiết lập các ranh giới hệ thống giúp ta quyết định 
xem tính năng nào được cài đặt trong hệ thống đang 
được thiết kế và tính năng nào nằm trong các hệ thống 
liên quan. 
9 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ngữ cảnh và các mô hình tương tác 
v Ngữ cảnh hệ thống 
§  Một mô hình tĩnh mô tả các hệ thống khác trong môi 
trường. 
§  Sử dụng một mô hình hệ thống con để chỉ ra các hệ 
thống khác. 
v Mô hình về việc sử dụng hệ thống 
§  Một mô hình động mô tả cách hệ thống tương tác với 
môi trường của nó. 
§  Sử dụng các use case để chỉ ra các tương tác. 
10 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ngữ cảnh hệ thống cho trạm thời tiết 
Weather
information
system
1..n1 Weather
station
Satellite
1
1
1..n
1
Control
system 11
1 1..n
11 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Use case cho trạm thời tiết 
Shutdown
Report
weather
Restart
Report status
Reconfigure
Weather
information
system
Control
system Powersave
Remote
control
12 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô tả use case—Report weather 
System Weather station 
Use case Report weather 
Actors Weather information system, Weather station 
Mô tả Weather station gởi một bản tóm tắt về dữ liệu thời tiết được 
tập hợp từ các thiết bị đến Weather information system. Dữ liệu 
được gởi đi gồm giá trị lớn nhất, nhỏ nhất và giá trị trung bình 
của nhiệt độ không khí và nhiệt độ mặt đất; áp suất không khí 
lớn nhất, nhỏ nhất và trung bình; tốc độ gió lớn nhất, nhỏ nhất 
và trung bình;tổng lượng mưa, hướng gió. Việc lấy mẫu này 
thực hiện 5’ một lần. 
Tác động Weather information system thiết lập một kết nối thông qua vệ 
tinh với weather station và yêu cầu truyền dữ liệu. 
Trả lời Dữ liệu đã tóm tắt được gởi đến Weather information system. 
Chú thích Các Weather station thường được yêu cầu báo cáo 1 lần/giờ 
nhưng độ thường xuyên này khác nhau tùy theo từng weather 
station và có thể thay đổi trong tương lai. 
13 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các giai đoạn của quy trình 
• Định nghĩa ngữ cảnh và các chế độ sử dụng hệ thống 
•  Thiết kế kiến trúc hệ thống 
•  Nhận diện các đối tượng hệ thống quan trọng 
•  Phát triển các mô hình thiết kế 
• Đặc tả giao diện đối tượng. 
14 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Thiết kế kiến trúc 
v Sử dụng thông tin về các tương tác giữa hệ 
thống và môi trường để thiết kế kiến trúc hệ 
thống. 
§  Nhận diện các component chính hình thành nên hệ 
thống và mối quan hệ giữa các component này, 
§  Tổ chức các component này sử dụng một kiến trúc mẫu 
có sẵn ví dụ như mô hình phân tầng hoặc mô hình 
client-server. 
15 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc ở mức cao của weather 
station 
«subsystem»
Data collection
«subsystem»
Communications
«subsystem»
Configuration manager
«subsystem»
Fault manager
«subsystem»
Power manager
«subsystem»
Instruments
Communication link
16 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc của Weather station 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc của hệ thống thu thập dữ 
liệu Data Collection 
Data collection
Transmitter Receiver
WeatherData
18 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các giai đoạn của quy trình 
• Định nghĩa ngữ cảnh và các chế độ sử dụng hệ thống 
•  Thiết kế kiến trúc hệ thống 
•  Nhận diện các đối tượng hệ thống quan trọng 
•  Phát triển các mô hình thiết kế 
• Đặc tả giao diện đối tượng. 
19 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nhận diện lớp đối tượng 
v Thường là một phần khó của thiết kế 
hướng đối tượng. 
v Không có một công thức tổng quát nào 
§  phụ thuộc về kỹ năng, kinh nghiệm và kiến thức 
về lĩnh vực của người thiết kế hệ thống. 
v Đây là quy trình lặp lại 
§  Ta không thể thực hiện xong ngay lần đầu tiên. 
20 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các phương pháp để nhận diện 
21 
Sử dụng phương pháp phân tích ngữ pháp dựa 
vào mô tả hệ thống sử dụng ngôn ngữ tự nhiên. 
Dựa vào việc nhận diện những thứ hữu hình có 
trong miền ứng dụng. 
Sử dụng phương pháp hành vi và nhận diện các 
vật thể dựa vào cái gì tham gia vào hành vi nào 
Sử dụng việc phân tích dựa vào kịch bản. Các 
đối tượng, thuộc tính và phương thức trong mỗi 
kịch bản được nhận diện. 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ví dụ: mô tả Weather station 
A weather station is a package of software controlled 
instruments which collects data, performs some data 
processing and transmits this data for further processing. The 
instruments include air and ground thermometers, an 
anemometer, a wind vane, a barometer and a rain gauge. Data 
is collected periodically. 
When a command is issued to transmit the weather data, the 
weather station processes and summarises the collected data. 
The summarised data is transmitted to the mapping computer 
when a request is received. 
22 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các lớp đối tượng trong Weather 
station 
v Việc nhận diện các đối tượng trong hệ thống 
weather station có thể dựa vào những dữ liệu 
và phần cứng hữu hình trong hệ thống: 
§  Ground thermometer, Anemometer, Barometer 
•  Các đối tượng của miền ứng dụng, là các đối tượng phần cứng 
liên quan đến thiết bị trong hệ thống. 
§  Weather station 
•  Giao diện cơ bản của weather station với môi trường của nó. Do 
đó, các thao tác của nó phản ánh các tương tác được nhận diện 
trong mô hình use case. 
§  Weather data 
•  Chịu trách nhiệm xử lý các yêu cầu về báo cáo thời tiết. Đối 
tượng này gởi một bản tóm tắt về dữ liệu từ thiết bị đến hệ 
thống thông tin thời tiết. 
23 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các lớp đối tương Weather station 
identifier
reportWeather ( )
reportStatus ( )
powerSave (instruments)
remoteControl (commands)
reconfigure (commands)
restart (instruments)
shutdown (instruments)
WeatherStation
get ( )
test ( )
Ground
thermometer
temperature
Anemometer
windSpeed
windDirection
get ( )
test ( )
Barometer
pressure
height
get ( )
test ( )
WeatherData
airTemperatures
groundTemperatures
windSpeeds
windDirections
pressures
rainfall
collect ( )
summarize ( )
gt_Ident
an_Ident bar_Ident
24 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Bài tập 
v Sử dụng các ký hiệu đồ họa UML cho 
lớp đối tượng, thiết kế các lớp đối 
tượng, nhận diện các thuộc tính và thao 
tác. Sử dụng kinh nghiệm của bản thân 
để quyết định thuộc tính và thao tác 
trong những đối tượng này. 
§  Điện thoại 
§  Máy in cho máy tính cá nhân 
§  Máy nghe nhạc cá nhân 
§  Tài khoản ngân hàng 
§  Danh mục thư viện 
25 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các giai đoạn của quy trình 
• Định nghĩa ngữ cảnh và các chế độ sử dụng hệ thống 
•  Thiết kế kiến trúc hệ thống 
•  Nhận diện các đối tượng hệ thống quan trọng 
•  Phát triển các mô hình thiết kế 
• Đặc tả giao diện đối tượng. 
26 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các mô hình thiết kế 
v Chỉ ra các đối tượng và lớp đối tượng và 
mối quan hệ giữa các thực thể này. 
v Mô hình tĩnh 
§  mô tả cấu trúc tĩnh của hệ thống về các lớp đối 
tượng và quan hệ. 
v Mô hình động 
§  mô tả tương tác động giữa các đối tượng. 
27 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các ví dụ về mô hình thiết kế 
Mô hình hệ thống con 
•  Chỉ ra việc gom nhóm các đối tượng vào trong hệ thống con tương ứng 
Mô hình tuần tự 
•  Chỉ ra chuỗi tuần tự các tương tác của các đối tượng. 
Mô hình trạng thái 
•  Chỉ ra cách các đối tượng riêng lẻ thay dổi trạng thái để trả lời các sự 
kiện. 
Các mô hình khác như mô hình use case, mô hình cộng 
gộp, mô hình tổng quát hóa, ... 
28 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình hệ thống con 
v Là mô hình tĩnh, chỉ ra cách một thiết kế 
được tổ chức thành các nhóm đối tượng 
liên quan đến nhau về mặt logic như thế 
nào. 
v Trong UML, biểu đồ gói được sử dụng để 
biểu diễn mô hình hệ thống con. 
29 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Hệ thống con Weather station 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình tuần tự 
v Mô hình tuần tự chỉ ra chuỗi tuần tự các 
tương tác của đối tượng 
§  Đối tượng được đặt ở hàng ngang trên cùng; 
§  Thời gian được biểu diễn bằng đường thẳng đứng vì thế 
mô hình được đọc từ trên xuống; 
§  Tương tác được biểu diễn bằng các đường mũi tên có 
đặt tên, các kiểu mũi tên khác nhau biểu diễn các loại 
tương tác khác nhau; 
§  Ô hình chữ nhật trong một lifeline biểu diễn thời gian khi 
đói tượng đang điều khiển một đối tượng khác trong hệ 
thống. 
31 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Biểu đồ tuần tự biểu diễn việc thu 
thập dữ liệu 
:SatComms
request (report)
acknowledge
reportWeather ()
get (summary)
reply (report)
acknowledge
:WeatherStation :Commslink
summarize ()
:WeatherData
acknowledge
send (report)
acknowledge
Weather
information system
32 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Biểu đồ trạng thái 
v Được sử dụng để chỉ ra cách các đối 
tượng trả lời các yêu cầu dịch vụ khác 
nhau và việc dịch chuyển trạng thái gây 
ra bởi các yêu cầu này. 
v Là mô hình mức cao của một hệ thống 
hoặc là mô hình hành vi thời gian thực 
của đối tượng. 
v Không cần biểu đồ trạng thái cho tất cả 
các đối tượng trong hệ thống. 
§  Nhiều đối tượng trong hệ thống khá đơn giản 
và một mô hình trạng thái thêm vào thiết kế các 
chi tiết không cần thiết. 
33 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Biểu đồ trạng thái của Weather 
station 
transmission done
remoteControl()
reportStatus()restart()
shutdown()
test complete
weather summary
complete
clock collection
done
Operation
reportWeather()
Shutdown Running Testing
Transmitting
Collecting
Summarizing
Controlled
Configuring
reconfigure()
configuration done
powerSave()
34 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các giai đoạn của quy trình 
• Định nghĩa ngữ cảnh và các chế độ sử dụng hệ thống 
•  Thiết kế kiến trúc hệ thống 
•  Nhận diện các đối tượng hệ thống quan trọng 
•  Phát triển các mô hình thiết kế 
• Đặc tả giao diện đối tượng. 
35 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Đặc tả giao diện 
v Giao diện đối tượng phải được đặc tả sao cho 
đối tượng và các component có thể được thiết 
kế song song với nhau. 
v Thiết kế giao diện liên quan đến việc đặc tả chi 
tiết giao diện của một đối tượng hoặc một 
nhóm đối tượng. 
v Giao diện có thể được đặc tả trong UML sử 
dụng cùng ký hiệu với biểu đồ lớp. 
36 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Đặc tả giao diện 
v Không nên chứa chi tiết việc biểu diễn 
dữ liệu trong đặc tả giao diện. 
v Cùng một đối tượng có thể có vài giao 
diện, mỗi giao diện là một góc nhìn khác 
nhau về các phương thức mà đối tượng 
cung cấp. 
v Một nhóm các đối tượng có thể được 
truy cập thông qua một interface duy 
nhất. 
37 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Weather station interfaces 
«interface»
Reporting
weatherReport (WS-Ident): Wreport
statusReport (WS-Ident): Sreport
«interface»
Remote Control
startInstrument(instrument): iStatus
stopInstrument (instrument): iStatus
collectData (instrument): iStatus
provideData (instrument ): string
38 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Giao diện Weather station 
interface WeatherStation {
public void WeatherStation () ;
public void startup () ;
public void startup (Instrument i) ;
public void shutdown () ;
public void shutdown (Instrument i) ;
public void reportWeather ( ) ;
public void test () ;
public void test ( Instrument i ) ;
public void calibrate ( Instrument i) ;
public int getID () ;
} //WeatherStation
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Bài tập 
v Một hệ thống quản lý thời gian và nhật 
ký nhóm. 
v Trạm xăng tự động. 
40 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.   Thiết kế hướng đối tượng sử dụng UML 
2.   Thiết kế mẫu 
41 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các mẫu thiết kế 
v Là cách tái sử dụng các kiến thức trừu 
tượng về một vấn đề và giải pháp. 
v Mẫu là một mô tả của vấn đề và điểm 
chính của giải pháp. 
v Nên biểu diễn đủ trừu tượng để có thể 
tái sử dụng ở các thiết lập khác. 
v Các mô tả mẫu thường sử dụng các đặc 
tính hướng đối tượng như tính thừa kế 
và tính đa hình. 
42 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các thành phần của mẫu 
v Tên 
§  Một tên có nghĩa để nhận diện. 
v Mô tả vấn đề. 
v Mô tả giải pháp. 
§  Không phải là một thiết kế rời rạc mà là một template 
cho một giải pháp thiết kế trong đó giải pháp này có thể 
được sử dụng theo cách khác. 
v Hệ quả 
§  Kết quả sau khi áp dụng mẫu này. 
43 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mẫu Observer 
v Tên 
§  Observer. 
v Mô tả 
§  Tách rời việc biểu diễn trạng thái ra khỏi đối tượng. 
v Mô tả vấn đề 
§  Được sử dụng khi có nhiều cách hiển thị trạng thái. 
v Mô tả giải pháp 
§  Xem slide 44. 
v Hệ quả 
§  Sẽ không thực tế nếu muốn tối ưu hóa để làm tăng hiệu 
suất của việc hiển thị. 
44 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mẫu Observer (1) 
Tên mẫu Observer 
Mô tả Tách rời việc hiển thị trạng thái ra khỏi vật thể và cho 
phép cung cấp các hiển thị thay thế. Khi trạng thái 
của đối tượng thay đổi, tất cả các hiển thị được thông 
báo và tự động cập nhật sự thay đổi đó. 
Mô tả vấn đề Trong nhiều tình huống, ta phải cung cấp nhiều hiển 
thị khác nhau về thông tin trạng thái, ví dụ như một 
hiển thị đồ họa và một hiển thị bảng. Các biểu diễn 
thay thế nên hỗ trợ tương tác, và khi trạng thái bị 
thay đổi, tất cả các hiển thị phải được cập nhật. 
Mẫu này cũng có thể được sử dụng trong tất cả các 
tình huống ở đó nhiều hơn một định dạng hiển thị về 
thông tin trạng thái được yêu cầu và ở đó không cần 
thiết phải duy trì thông tin trạng thái để biết về định 
dạng hiển thị cụ thể được sử dụng. 
45 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mẫu Observer (2) 
Tên mẫu Observer 
Mô tả giải 
pháp 
Gồm hai đối tượng trừu tượng: Subject và Observer, và hai đối 
tượng cụ thể: ConcreteSubject và ConcreteObject thừa kế thuộc 
tính của các đối tượng trừu tượng liên quan. 
Các đối tượng trừu tượng chứa các thao tác chung có thể áp dụng 
được trong mọi tình huống. Trạng thái được hiển thị được duy trì 
trong ConcreteSubject, cho phép thêm hoặc loại bỏ các Observer 
(mỗi observer tương ứng với một hiển thị) và đưa ra một thông 
báo khi trạng thái bị thay đổi. 
ConcreteObserver duy trì một bản copy trạng thái của 
ConcreteSubject và cài đặt giao diện Update() của Observer. 
ConcreteObserver tự động hiển thị trạng thái và phản ánh sự thay 
đổi khi trạng thái được cập nhật. 
Hệ quả Subject chỉ biết Observer và không biết về chi tiết của lớp cụ thể. 
Vì vậy có ít mối liên hệ giữa các đối tượng này. Vì thiếu thông tin, 
việc tối ưu để nâng cao hiệu năng hiển thị là không thực tế. Thay 
đổi Subject có thể gây nên một loạt các cập nhật đối với các 
Observer được phát sinh một cách không cần thiết. 
46 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Đa hiển thị sử dụng mẫu Observer 
A: 40
B: 25
C: 15
D: 20
Observer 1
A
B
C
D
Observer 2
Subject
0
50
25
A B C D
47 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình UML của mẫu Observer 
Subject Observer
Attach (Observer)
Detach (Observer)
Notify ()
Update ()
ConcreteSubject
GetState ()
subjectState
ConcreteObserver
Update ()
observerState
observerState =
 subject -> GetState ()return subjectState
for all o in observers
 o -> Update ()
48 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các vấn đề về thiết kế 
v Bất kỳ vấn đề thiết kế nào đang gặp phải cũng 
có một mẫu có thể áp dụng được. 
v Ví dụ: 
§  Báo cho một vài đối tượng về trạng thái của đối tượng nào đó bị 
thay đổi (Observer pattern). 
§  Cung cấp một giao diện đơn giản cho cho một tập các giao diện 
trong hệ thống con, làm cho hệ thống con dễ sử dụng hơn 
(Façade pattern). 
§  Cung cấp một phương pháp chuẩn để truy cập vào các phần tử 
của một tập hợp, bỏ qua việc tập hợp đó được cài đặt thế nào 
(Iterator pattern). 
§  Cho phép khả năng mở rộng tính năng của một lớp đã có sẵn tại 
thời gian thực (Decorator pattern). 
§  ... 
49 
            Các file đính kèm theo tài liệu này:
 nguyen_thi_minh_tuyen_06_oo_design_8799_1994370.pdf nguyen_thi_minh_tuyen_06_oo_design_8799_1994370.pdf