SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Mục tiêu cần đạt được
-Hiểu được ý nghĩa của Composite Pattern
-Biết áp dụng Composite trong từng hoàn
cảnh cụ thể
-Có thể áp dụng được ngay vào một bài toán
để code.
Một vài ví dụ minh họa
 Ví dụ về các thành phần trong một chương trình
 Ví dụ về tính điểm trung bình của một trường
 Muốn tính điểm trung bình của một trường, cần phải
tính điểm trung bình của lớp, trong một lớp phải tính
điểm trung bình của một học sinh, mỗi học sinh phải
tính điểm trung bình của môn mình học : toán, lý , hóa,
thể dục,…
 Có những môn có nhiều điểm như điểm 15p, điểm 45p,
điểm cuối kỳ, trong khi có những môn chỉ có 1 điểm như
môn thể dục, quân sự (d0 đó những môn này ko cần tính
điểm trung bình)
Bài toán đặt ra
 Làm thế nào có thể quản lý được những module trong

một chương trình một cách hiệu quả
 Như ví dụ tính điểm trên, làm thế nào có thể quản lý
được hệ thống điểm ở trên của học sinh
 Nêu ra một số cách quản lý thông thường (tạo nhiều

class, etc…)
Mô hình tính điểm tb của trường
Phương án giải quyết
 Sử dụng Composite Pattern
Phương án giải quyết
 Thành phần Component sẽ là một interface hoặc một

abstract class (sẽ so sánh sự khác nhau khi sử dụng 2
loại hình này)
 Các thành phần SubClass và Composite sẽ extends
hoặc implements thành phần Component.
 Có mũi tên kết tập hướng từ Component ra thành
phần composite (nghĩa là composite sẽ bao gồm nhiều
Component)
Áp dụng vào bài toán tính điểm
trung bình
 Component

public interface Mark {
float calculatePoint();
}
Áp dụng vào bài toán tính điểm
trung bình
 SubClass

public class Student implements Mark {
private float math;
private float physic;
public Student(….) {….}
@Override
public float calculatePoint() {
return (math + physic)/2;
}
}
Áp dụng vào bài toán tính điểm
trung bình
 Composite
public class Class implements Mark{
ArrayList<Student> students = new ArrayList<Student>();
@Override
public float calculatePoint() {
float sum = 0;
for (Student s : students) {
sum += s.calculatePoint();
}
return 0;
}
}
Thực hành
 Có 3 thực đơn : bữa sáng, bữa trưa, bữa tối.
 Bữa sáng có : đồ ăn chính (main food) và đồ uống

(drinks)
 Trong main food có : bánh mỳ, ngũ cốc, trứng ốp.

 Trong drinks có : sữa, nước ép trái cây, cà fe

Bữa trưa có : cơm, rau, cá chép, thịt lợn. Trong rau có rau
muống, rau dền.
Bữa tối có : cơm, rau, cá, thịt. Trong thịt có thịt lợn, thịt gà.
Cá có cá chép, cá rô.
Thực hành
 Sử dụng Composite pattern để in ra toàn bộ menu của thực đơn. Sử

dụng uml sau :

Weitere ähnliche Inhalte

Andere mochten auch

Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...City of Vancouver
 
3. transpo system overview
3. transpo system overview3. transpo system overview
3. transpo system overviewDeuce Condenuevo
 
Mentallog12 10
Mentallog12 10Mentallog12 10
Mentallog12 10mentallog
 
Agile software development
Agile software developmentAgile software development
Agile software developmentmentallog
 
Builder pattern
Builder pattern Builder pattern
Builder pattern mentallog
 
Modelo para elaboração do portfolio individual unopar 2015
Modelo para elaboração do portfolio individual unopar 2015Modelo para elaboração do portfolio individual unopar 2015
Modelo para elaboração do portfolio individual unopar 2015daniela oliveira
 
Universal design of learning
Universal design of learningUniversal design of learning
Universal design of learningbeccastrauss
 
Little red ridinghood
Little red ridinghoodLittle red ridinghood
Little red ridinghoodSimone Becker
 
The dimension of meaning
The dimension of meaningThe dimension of meaning
The dimension of meaningIhsan Pratama
 
Vật liệu composite là gì
Vật liệu composite là gìVật liệu composite là gì
Vật liệu composite là gìThanh Huyền Vũ
 

Andere mochten auch (16)

Webaula 2
Webaula 2Webaula 2
Webaula 2
 
Establishing Rapport
 Establishing Rapport    Establishing Rapport
Establishing Rapport
 
Nosql
NosqlNosql
Nosql
 
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
 
3. transpo system overview
3. transpo system overview3. transpo system overview
3. transpo system overview
 
Mentallog12 10
Mentallog12 10Mentallog12 10
Mentallog12 10
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Builder pattern
Builder pattern Builder pattern
Builder pattern
 
Modelo para elaboração do portfolio individual unopar 2015
Modelo para elaboração do portfolio individual unopar 2015Modelo para elaboração do portfolio individual unopar 2015
Modelo para elaboração do portfolio individual unopar 2015
 
Universal design of learning
Universal design of learningUniversal design of learning
Universal design of learning
 
Little red ridinghood
Little red ridinghoodLittle red ridinghood
Little red ridinghood
 
The dimension of meaning
The dimension of meaningThe dimension of meaning
The dimension of meaning
 
Vật liệu composite là gì
Vật liệu composite là gìVật liệu composite là gì
Vật liệu composite là gì
 
English essay
English essayEnglish essay
English essay
 
Speech
SpeechSpeech
Speech
 
English essay
English essayEnglish essay
English essay
 

Ähnlich wie Composite pattern

K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11Tin5VungTau
 
Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kieu Tuyen
 
Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kieu Tuyen
 
Đồ án quản lý tuyển sinh
Đồ án quản lý tuyển sinhĐồ án quản lý tuyển sinh
Đồ án quản lý tuyển sinhLuân Phạm Thành
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhvantai30
 
Tin10_chuong01 bai_06
Tin10_chuong01 bai_06Tin10_chuong01 bai_06
Tin10_chuong01 bai_06Hằng Võ
 
Giao trinhtoanungdung nguyenhaithanh
Giao trinhtoanungdung nguyenhaithanhGiao trinhtoanungdung nguyenhaithanh
Giao trinhtoanungdung nguyenhaithanhPetit Garçcon
 
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docxLuận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docxtcoco3199
 
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docxLuận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docxtcoco3199
 
Phân tích và thiết kế hệ thống quản lý điểm sinh viên đào tạo tín chỉ 1246636
Phân tích và thiết kế hệ thống quản lý điểm sinh viên đào tạo tín chỉ 1246636Phân tích và thiết kế hệ thống quản lý điểm sinh viên đào tạo tín chỉ 1246636
Phân tích và thiết kế hệ thống quản lý điểm sinh viên đào tạo tín chỉ 1246636jackjohn45
 
Bồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toánBồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toánNguyễn Đức
 
Đề cương Toán kinh tế K16 (2017)
Đề cương Toán kinh tế K16 (2017)Đề cương Toán kinh tế K16 (2017)
Đề cương Toán kinh tế K16 (2017)tuongnm
 
Cq lt hdt-th2011-01-tuan08
Cq lt hdt-th2011-01-tuan08Cq lt hdt-th2011-01-tuan08
Cq lt hdt-th2011-01-tuan08. .
 
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11K33LA-KG
 
Chuong 6 tin 11
Chuong 6 tin 11Chuong 6 tin 11
Chuong 6 tin 11Sunkute
 
17_skkn_toan_9_ren_ki_nang_giai_bai_toan_bang_cach_lap_phuong_trinh_va_he_phu...
17_skkn_toan_9_ren_ki_nang_giai_bai_toan_bang_cach_lap_phuong_trinh_va_he_phu...17_skkn_toan_9_ren_ki_nang_giai_bai_toan_bang_cach_lap_phuong_trinh_va_he_phu...
17_skkn_toan_9_ren_ki_nang_giai_bai_toan_bang_cach_lap_phuong_trinh_va_he_phu...https://dichvuvietluanvan.com/
 

Ähnlich wie Composite pattern (20)

Ll3 online
Ll3 onlineLl3 online
Ll3 online
 
K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11
 
Bài 6
Bài 6Bài 6
Bài 6
 
Oop 8
Oop 8Oop 8
Oop 8
 
Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4
 
Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4
 
Đồ án quản lý tuyển sinh
Đồ án quản lý tuyển sinhĐồ án quản lý tuyển sinh
Đồ án quản lý tuyển sinh
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanh
 
Tin10_chuong01 bai_06
Tin10_chuong01 bai_06Tin10_chuong01 bai_06
Tin10_chuong01 bai_06
 
Giao trinhtoanungdung nguyenhaithanh
Giao trinhtoanungdung nguyenhaithanhGiao trinhtoanungdung nguyenhaithanh
Giao trinhtoanungdung nguyenhaithanh
 
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docxLuận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
 
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docxLuận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
Luận Văn Một Số Thuật Toán Chọn Lọc Và Ứng Dụng Trong Tin Học Phổ Thông.docx
 
Phân tích và thiết kế hệ thống quản lý điểm sinh viên đào tạo tín chỉ 1246636
Phân tích và thiết kế hệ thống quản lý điểm sinh viên đào tạo tín chỉ 1246636Phân tích và thiết kế hệ thống quản lý điểm sinh viên đào tạo tín chỉ 1246636
Phân tích và thiết kế hệ thống quản lý điểm sinh viên đào tạo tín chỉ 1246636
 
Bồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toánBồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toán
 
Đề cương Toán kinh tế K16 (2017)
Đề cương Toán kinh tế K16 (2017)Đề cương Toán kinh tế K16 (2017)
Đề cương Toán kinh tế K16 (2017)
 
Cq lt hdt-th2011-01-tuan08
Cq lt hdt-th2011-01-tuan08Cq lt hdt-th2011-01-tuan08
Cq lt hdt-th2011-01-tuan08
 
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
 
Hsbd van tri
Hsbd van triHsbd van tri
Hsbd van tri
 
Chuong 6 tin 11
Chuong 6 tin 11Chuong 6 tin 11
Chuong 6 tin 11
 
17_skkn_toan_9_ren_ki_nang_giai_bai_toan_bang_cach_lap_phuong_trinh_va_he_phu...
17_skkn_toan_9_ren_ki_nang_giai_bai_toan_bang_cach_lap_phuong_trinh_va_he_phu...17_skkn_toan_9_ren_ki_nang_giai_bai_toan_bang_cach_lap_phuong_trinh_va_he_phu...
17_skkn_toan_9_ren_ki_nang_giai_bai_toan_bang_cach_lap_phuong_trinh_va_he_phu...
 

Composite pattern

  • 1. Mục tiêu cần đạt được -Hiểu được ý nghĩa của Composite Pattern -Biết áp dụng Composite trong từng hoàn cảnh cụ thể -Có thể áp dụng được ngay vào một bài toán để code.
  • 2. Một vài ví dụ minh họa  Ví dụ về các thành phần trong một chương trình  Ví dụ về tính điểm trung bình của một trường  Muốn tính điểm trung bình của một trường, cần phải tính điểm trung bình của lớp, trong một lớp phải tính điểm trung bình của một học sinh, mỗi học sinh phải tính điểm trung bình của môn mình học : toán, lý , hóa, thể dục,…  Có những môn có nhiều điểm như điểm 15p, điểm 45p, điểm cuối kỳ, trong khi có những môn chỉ có 1 điểm như môn thể dục, quân sự (d0 đó những môn này ko cần tính điểm trung bình)
  • 3. Bài toán đặt ra  Làm thế nào có thể quản lý được những module trong một chương trình một cách hiệu quả  Như ví dụ tính điểm trên, làm thế nào có thể quản lý được hệ thống điểm ở trên của học sinh  Nêu ra một số cách quản lý thông thường (tạo nhiều class, etc…)
  • 4. Mô hình tính điểm tb của trường
  • 5. Phương án giải quyết  Sử dụng Composite Pattern
  • 6. Phương án giải quyết  Thành phần Component sẽ là một interface hoặc một abstract class (sẽ so sánh sự khác nhau khi sử dụng 2 loại hình này)  Các thành phần SubClass và Composite sẽ extends hoặc implements thành phần Component.  Có mũi tên kết tập hướng từ Component ra thành phần composite (nghĩa là composite sẽ bao gồm nhiều Component)
  • 7. Áp dụng vào bài toán tính điểm trung bình  Component public interface Mark { float calculatePoint(); }
  • 8. Áp dụng vào bài toán tính điểm trung bình  SubClass public class Student implements Mark { private float math; private float physic; public Student(….) {….} @Override public float calculatePoint() { return (math + physic)/2; } }
  • 9. Áp dụng vào bài toán tính điểm trung bình  Composite public class Class implements Mark{ ArrayList<Student> students = new ArrayList<Student>(); @Override public float calculatePoint() { float sum = 0; for (Student s : students) { sum += s.calculatePoint(); } return 0; } }
  • 10. Thực hành  Có 3 thực đơn : bữa sáng, bữa trưa, bữa tối.  Bữa sáng có : đồ ăn chính (main food) và đồ uống (drinks)  Trong main food có : bánh mỳ, ngũ cốc, trứng ốp.  Trong drinks có : sữa, nước ép trái cây, cà fe Bữa trưa có : cơm, rau, cá chép, thịt lợn. Trong rau có rau muống, rau dền. Bữa tối có : cơm, rau, cá, thịt. Trong thịt có thịt lợn, thịt gà. Cá có cá chép, cá rô.
  • 11. Thực hành  Sử dụng Composite pattern để in ra toàn bộ menu của thực đơn. Sử dụng uml sau :