OOP 10 design patterns -

20 215 4
OOP 10 design patterns -

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình hướng đối tượng tren C/C++ -OOP 10 design patterns

MẫuMẫu thiếtthiết kếkế hướnghướng đốiđối tượngtượng GV. GV. NguyễnNguyễn Minh Minh HuyHuy hướnghướng đốiđối tượngtượng 1Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy NộiNội dungdung  GiớiGiới thiệuthiệu mẫumẫu thiếtthiết kếkế  MộtMột sốsố mẫumẫu thôngthông dung.dung. 2Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy NộiNội dungdung  GiớiGiới thiệuthiệu mẫumẫu thiếtthiết kếkế  MộtMột sốsố mẫumẫu thôngthông dung.dung. 3Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy GiớiGiới thiệuthiệu mẫumẫu thiếtthiết kếkế  ThếThế nàonào làlà chươngchương trìnhtrình hướnghướng đốiđối tượngtượng??  CóCó khaikhai báobáo lớplớp vàvà sửsử dụngdụng đốiđối tượngtượng??  ChưaChưa đủđủ!!!!  CầnCần tuântuân thủthủ baba tínhtính chấtchất hướnghướng đốiđối tượngtượng!!!!  TínhTính đóngđóng góigói (encapsulation)(encapsulation)  QuyQuy tắctắc hộphộp đenđen  TínhTính kếkế thừathừa (inheritance)(inheritance)  TáiTái sửsử dụngdụng  TínhTính đađa hìnhhình  HàmHàm ảoảo + + liênliên kếtkết độngđộng 4Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy GiớiGiới thiệuthiệu mẫumẫu thiếtthiết kếkế  MụcMục đíchđích củacủa hướnghướng đốiđối tượngtượng??  GiảmGiảm gắngắn kếtkết mãmã nguồnnguồn (spaghetti code).(spaghetti code).  GiảmGiảm chi chi phíphí xâyxây mớimới  GiảmGiảm phụphụ thuộcthuộc vàovào càicài đặtđặt cụcụ thểthể  ỨngỨng phóphó thaythay đổiđổi, , ddễễ bảobảo trìtrì, , nângnâng cấpcấp 5Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy GiớiGiới thiệuthiệu mẫumẫu thiếtthiết kếkế  KháiKhái niệmniệm mẫumẫu thiếtthiết kếkế::  CácCác tínhtính chấtchất hướnghướng đốiđối tượngtượng mơmơ hồhồ, , khókhó hiểuhiểu  CầnCần cócó nhữngnhững bàibài giảigiải mẫumẫu  MẫuMẫu thiếtthiết kếkế Gang of Four:Gang of Four:  Ra Ra đờiđời tạitại OOPSLA 1994.OOPSLA 1994.  23 23 bàibài giảigiải mẫumẫu chocho nhữngnhững vấnvấn đềđề thiếtthiết kếkế thườngthường gặpgặp 6Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy NộiNội dungdung  GiớiGiới thiệuthiệu mẫumẫu thiếtthiết kếkế  MộtMột sốsố mẫumẫu thôngthông dụngdụng 7Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy MộtMột sốsố mẫumẫu thôngthông dụngdụng  VấnVấn đềđề 1:1: MộtMột nhànhà hànghàng nhỏnhỏ thuêthuê duyduy nhấtnhất mộtmột nhânnhân viênviên phụcphục vu vu bànbàn. . TạiTại mộtmột thờithời điểmđiểm, , nhânnhân viênviên chỉchỉ cócó thểthể phụcphục vụvụ tốitối đađa 5 5 bànbàn. . NhânNhân viênviên đượcđược tiềntiền thưởngthưởng 5% 5% trêntrên mỗimỗi hóahóa đơnđơn tínhtính tiềntiền HãyHãy xâyxây dựngdựng lớplớp NhanVienPhucVuNhanVienPhucVu đảmđảm bảobảo điềuđiều kiệnkiện phụcphục vụvụ vàvà tínhtính sốsố tiềntiền thưởngthưởng màmà nhânnhân viênviên nhậnnhận đượcđược đếnđến thờithời điểmđiểm hiệnhiện tạitại class class NhanVienPhucVuNhanVienPhucVu class class NhanVienPhucVuNhanVienPhucVu {{ private:private: intint soBansoBan;; float float tongTientongTien;; public:public: void void donKhachdonKhach();(); void void tinhTienKhachtinhTienKhach(float (float soTiensoTien);); float float tinhTienThuongtinhTienThuong();(); };}; 8Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy MộtMột sốsố mẫumẫu thôngthông dụngdụng  MẫuMẫu Singleton:Singleton:  GiúpGiúp giớigiới hạnhạn sốsố lượnglượng đốiđối tượngtượng đượcđược tạotạo  ĐốiĐối tượngtượng dùngdùng chungchung  Connection Pool.Connection Pool.  Application Object.Application Object. 9Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy MộtMột sốsố mẫumẫu thôngthông dụngdụng  VấnVấn đềđề 2:2: CóCó 2 2 loạiloại mạchmạch điệnđiện:: CuộnCuộn dâydây: : mạchmạch đơnđơn, , cócó tiếttiết diệndiện S S vàvà chiềuchiều dàidài L.L. R = 0.5 * L / S.R = 0.5 * L / S. MạchMạch nốinối tiếptiếp: : mạchmạch phứcphức, , cócó mạchmạch con con mắcmắc nốinối tiếptiếp bênbên trongtrong R = RR = R 11 + R+ R 22 +  + R+  + R NN R = RR = R 11 + R+ R 22 +  + R+  + R NN XâyXây dựngdựng chươngchương trìnhtrình tínhtính điệnđiện trởtrở củacủa mộtmột mạchmạch điệnđiện class class CuonDayCuonDay {{ private:private: float float m_tietDienm_tietDien;; float float m_chieuDaim_chieuDai;; public:public: CuonDayCuonDay(float S, float L);(float S, float L); float float tinhDienTrotinhDienTro();(); };}; 10Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy class class MachNoiTiepMachNoiTiep {{ private:private: ?????? public:public: float float tinhDienTrotinhDienTro();(); ?????? };}; [...]... Tính kích thư c m t thư m c c Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy 17 Bài t p Bài t p 10. 3: M t công ty s n xu t có 2 lo i nhân viên: viên: - Nhân viên s n xu t: lương = s s n ph m x 100 00 t: - Nhân viên văn phòng: lương = m c lư ng – ngày ngh x 100 00 phòng: Thông tin chung c a nhân viên công ty g m: m: - H tên tên - Năm vào làm làm Ngoài lương đư c tính như trên, m i nhân viên còn... ty ty Vi t chương trình: trình: - Nh p vào danh sách nhân viên công ty ty - Tính t ng s ti n công ty ph i tr cho nhân viên m i tháng tháng Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy 18 Bài t p Bài t p 10. 4: M t khách s n 5 sao có 3 lo i phòng: phòng: - Phòng lo i A, đơn giá 300 USD / ngày ngày - Phòng lo i B, đơn giá 200 USD / ngày - Phòng lo i C, đơn giá 100 USD / ngày Ti n thuê phòng... sách gi m giá 10% t ngày th 10 tr đi cho nh ng khách thuê phòng lo i A và B Vi t chương trình: trình: - Nh p vào thông tin thuê phòng c a khách khách - Tính ti n thuê phòng cho khách khách Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy 19 Bài t p Bài t p 10. 5: M t công ty kinh doanh b t đ ng s n s h u N mi ng đ t M i mi ng t đ t có nh ng thông tin sau: sau: - Mã s (ví d : MD001) - Đơn giá m... Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy 16 Bài t p Bài t p 10. 2: Đơn v lưu tr d li u trên máy tính là t p tin và thư m c c - T p tin có thông tin v tên và kích thư c c - Thư m c ch có tên nhưng có th ch a t p tin và thư m c con Vi t chương trình cho phép: phép: - T o ra m t cây thư m c t p tin - Đ m s t p tin và thư m c có trong m t thư m c nào đó đó - Tính kích thư c m t thư m c c Phương... i: i: - Chi ti t đơn: không th phân chia, có tr ng lư ng và giá thành đơn: chia, thành - Chi ti t ph c: c u t o t nh ng chi ti t con (đơn ho c ph c) c: (đơn c) Tr ng lư ng = tr ng lư ng các chi ti t con + 10% ph ki n k t n i i Giá thành = giá thành các chi ti t con + 20% công l p ráp ráp Vi t chương trình: trình: - Nh p vào các chi ti t máy c u thành nên c máy máy - Tính tr ng lư ng c máy máy - Tính... 2 lo i hình d ng: ng: - Hình ch nh t: di n tích = dài x r ng t: ng - Hình thang: di n tích = (đáy l n + đáy nh ) * chi u cao / 2 thang: (đáy Mi ng đ t hình thang đư c công ty gi m giá 5% Vi t chương trình: trình: - Nh p danh sách nh ng mi ng đ t c a công ty ty - Tính t ng di n tích các mi ng đ t t - Tính t ng giá ti n c a các mi ng đ t t Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy 20 ... class Cat : pubic Pet { public: void eat(); void talk(); }; class Dog : public Pet { public: void eat(); void talk(); }; Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy void trainPet( Pet *p ) trainPet( { p->eat(); p->talk(); p->eat(); p->talk(); } 12 M t s m u thông d ng V n đ 3 (ti p theo): (ti theo): class WildAnimal { public: virtual void hunt() = 0; virtual void eatMeat() = 0; eatMeat()... hư ng đ i tư ng - Nguy n Minh Huy 14 Tóm t t Chương trình hư ng đ i tư ng: ng: Tuân th ba tính ch t hương đ i tư ng ng M c tiêu: ng phó thay đ i, d b o trì, nâng c p tiêu: i, trì, p M u thi t k : Bài gi i m u cho v n đ thi t k thư ng g p p 23 m u c a Gang of Four M u thông d ng: ng: Singleton Composite Adapter Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy 15 Bài t p Bài t p 10. 1: M t c máy...M t s m u thông d ng M u Composite: Giúp t ch c các đ i tư ng ph c h p p Thư m c-t p tin cChi ti t máy máy M ch đi n n Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy 11 M t s m u thông d ng V n đ 3: Xét chương trình hu n luy n thú nuôi: nuôi: class Pet { public: virtual void eat() = 0; virtual void talk() = 0;... public: void hunt(); void eatMeat(); eatMeat(); void shout(); }; class Wolf : public WildAnimal { public: void hunt(); void eatMeat(); eatMeat(); void shout(); }; Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy void main() { Tiger t = new Tiger(); Wolf w = new Wolf(); // làm sao hu n luy n?? n?? // trainPet( t ); trainPet( // trainPet( w); trainPet( } Hãy tìm cách m r ng chương trình đ có th

Ngày đăng: 12/01/2014, 16:58

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan