1. Trang chủ
  2. » Công Nghệ Thông Tin

Review OOPTrang H ng Sơn thson@hoasen.edu.vn 0908.54.64.22Hoa Sen University-1-.N i dungT ng pot

79 169 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 79
Dung lượng 3,77 MB

Nội dung

Review OOP Trang H ng Sơn thson@hoasen.edu.vn 0908.54.64.22 Hoa Sen University -1- N i dung T ng quan v OOP L p đ i tư ng Các tính ch t b n Interface v i ngôn ng C# || Java - 18/09/2010 - - Hoa Sen University - -2- T ng quan OOP (Object-Oriented Programming) k thu t l p trình h tr cơng ngh đ i tư ng l yñ i tư ng làm n n t ng OOP ñư c xây d ng n n t ng c a khái ni m l p trình c u trúc s tr u tư ng hóa d li u - 18/09/2010 - - Hoa Sen University - -3- T ng quan Ưu ñi m: • Gi m th i gian phát tri n ng d ng • Tăng su t đơn gi n hố đ ph c t p b o trì m r ng ng d ng • D dàng b o trì, nâng c p m r ng ng d ng Khuy t ñi m: • Các đ i tư ng thi u tính linh ñ ng có yêu c u phát tri n m i • Khơng h tr đóng gói nh ng hành vi ñan liên quan ñ n nhi u l p (các toán th c t hay g p ph i) mã chương trình có th n m l n l n, r i rác khó qu n lý AOP (Aspect-Oriented Programming) - 18/09/2010 - - Hoa Sen University - -4- L p ñ i tư ng L p m t ki u d li u (do ngư i dùng ñ nh nghĩa) dùng ñ t o ñ i tư ng L p m t khn m u, đ nh nghĩa đ c m tính ch t, hành vi, tr ng thái chung c a m t s ñ i tư ng L p khái ni m mang tính tr u tư ng hố ð i tư ng m t th c th c th c a m t l p L p “ o” - ñ i tư ng “th c” Ví d : • B n thi t k nhà nhà c th qu n 1,3,5, … • Lồi chó chó Lulu, Misa, Rita, - 18/09/2010 - - Hoa Sen University - -5- L p đ i tư ng L p Car: • Tính ch t: - Màu s c - Hãng s n xu t - Giá c • Hành vi: - Kh i ñ ng - Tăng / gi m t c - B t / t t ñèn - 18/09/2010 - ð i tư ng Car1: • Tính ch t: - Màu s c: xanh dương - Hãng s n xu t: Toyota - Giá c : 20.000$ • Hành vi: - Kh i ñ ng - Tăng / gi m t c - B t / t t ñèn - Hoa Sen University - ð i tư ng Car2: • Tính ch t: - Màu s c: màu đ - Hãng s n xu t: Ford - Giá c : 30.000$ • Hành vi: - Kh i đ ng - Tăng / gi m t c - B t / t t ñèn -6- ð i tư ng ð i tư ng = d li u + hành vi c a d li u Các thu t ng khác: • D li u (data) = Trư ng (fields) = Tính ch t (properties) = Thu c tính (attributes) = Bi n (variables) = Thơng tin (informations) = ð c m (characteristics) = … • Hành vi (behaviors) = Phương th c (methods) = Thao tác (operations) = Hàm (functions) = … - 18/09/2010 - - Hoa Sen University - -7- ð i tư ng ð i tư ng = thu c tính + phương th c Thu c tính: • Bao g m bi n, h ng s , hay tham s n i t i • Giá tr c a thu c tính th hi n tr ng thái c a m t ñ i tư ng Phương th c: • Dùng đ mơ t th c hi n hành vi c a ñ i tư ng • M i phương th c thư ng ñư c ñ nh nghĩa m t hàm, n i dung c a ch a thao tác ñ th c hi n hành vi - 18/09/2010 - - Hoa Sen University - -8- Các tính ch t b n - 18/09/2010 - - Hoa Sen University - -9- Tính đóng gói Là ch ràng bu c d li u hành vi d li u thành m t kh i th ng nh t ñ i tư ng Không cho phép ngư i s d ng ñ i tư ng thay ñ i tr c ti p tr ng thái n i t i c a m t đ i tư ng, ch có phương th c n i t i c a ñ i tư ng m i cho phép thay ñ i tr ng thái c a (accessor methods) đ mb os tồn v n d li u c a đ i tư ng “ðóng” đ i v i d li u “m ” ñ i v i hành vi - 18/09/2010 - - Hoa Sen University - - 10 - Created by Trang H ng Sơn + Messages to Classes or Invoke Static Methods: public class Foo { public void doX() { // static method call on class Calendar Locale[] locales = Calendar.getAvailableLocales(); } } + Polymorphic Messages and Cases: Payment {abstract} Payment is an abstract superclass, with concrete subclasses that implement the polymorphic authorize operation authorize() {abstract} CreditPayment DebitPayment authorize() authorize() object in role of abstract superclass polymorphic message :Register :Payment {abstract} doX authorize :DebitPayment stop at this point – don’t show any further details for this message :Foo authorize :CreditPayment :Bar authorize doA doX doB separate diagrams for each polymorphic concrete case -7- Created by Trang H ng Sơn + Asynchronous and Synchronous Calls: public class ClockStarter { public void startClock() { Thread t = new Thread( new Clock() ); t.start(); // asynchronous call to the 'run' method on the Clock System.runFinalization(); // example follow-on message } } // objects should implement the Runnable interface, in Java to be used on new threads public class Clock implements Runnable { public void run() { while (true) { // loop forever on own thread } } } -8- Created by Trang H ng Sơn GRASP principles (General Responsibility Assignment Software Patterns): thi t k hư ng trách nhi m (Responsibility-Driven Design) - “knowing” responsibility: + private encapsulated data + related objects + things it can derive or calculate - “doing” responsibility: + take action (create an object, a calculation) + initiate action in other objects + control / coordinate actions in other objects - nguyên lý b n: + Controller: V n ñ : ñ i tư ng ñ ng sau UI layer ñ nh n s tương tác c a Actor ñi u n ho t ñ ng c a h th ng ? Gi i quy t: - Facade controller: x lý cho toàn b h th ng, ñ i tư ng root - Session controller: x lý cho m t use case c th Ví d : - ð i tư ng u n ho t ñ ng c a game Monopoly ? - Facade controller: ñ i tư ng root ? MonopolyGame -9- Created by Trang H ng Sơn - Session controller: use case “PlayGame” PlayMonopolyGameSession PlayMonopolyGameHandler ho c + Creator: V n ñ : ñ i tư ng t o ñ i tư ng A ? Gi i quy t: ñ i tư ng B t o ñ i tư ng A khi: - B “contains” A (ch a) - B records A (ghi nh n) - B closely uses A (s d ng) - B has the initializing data for A (kh i t o d li u) Ví d : - ð i tư ng t o ñ i tư ng Square ? Board - 10 - Created by Trang H ng Sơn + Information Expert: V n ñ : ñ i tư ng n m gi thơng tin c a đ i tư ng A ? Gi i quy t: b sung thao tác l y thơng tin Ví d : - ð i tư ng n m gi thơng tin v đ i tư ng Square ? Board + Low Coupling: V n ñ : đ gi m s nh hư ng có s thay đ i, nói cách khác gi m s móc n i, s ph thu c l n ? Gi i quy t: s l n g i hàm ñ n ñ i tư ng khác nh t có th Ví d : public class A { public void doX() { Square s = new Dog().getSquare("aaa"); } } public class Dog { public void getSquare(String name) { Map squares = new Board().getAllSquares(); - 11 - Created by Trang H ng Sơn -return squares.get(name); } } public class A { public void doX() { Square s = new Board().getSquare("aaa"); } } + High Cohesion: V n ñ : ñ ñưa thao tác vào ñúng trách nhi m c a ñ i tư ng ? Gi i quy t: phân rõ trách nhi m c a t ng ñ i tư ng c th Ví d : trách nhi m c a MonopolyGame Controller (ñi u n, ñi u hư ng ho t đ ng, ch khơng ph i gi i quy t, th c thi thao tác c th đó) - 12 - Created by Trang H ng Sơn Case study “H th ng thư vi n ñi n t ”: - Use Case “ðăng nh p”: : Thu Thu : FormChinh : Thuthu : CtrlDangNhap : FormDangNhap 1: Yeu cau dang nhap 2: Load form DangNhap 3: Nhap thong tin dang nhap (username, password) 4: Boolean := authorize(username, password) 5: Boolean := check(username, password) 6: True 7: True 8: Chuyen den trang quan ly - Use Case “Tra c u sách”: : Ban Doc : FormChinh : CtrlTraCuuSach : FormTraCuuSach : Sach 1: Yeu cau tra cuu sach 2: Load form TraCuuSach 3: Nhap thong tin tra cuu (tuKhoa, tieuChi) 4: ArrayList := searchBook(tuKhoa, tieuChi) 5: ArrayList := search(tuKhoa,tieuChi) 6: Danh sach ket qua tim kiem 7: Danh sach ket qua tim kiem 8: Danh sach cac quyen sach tim duoc 9: Chon mot quyen sach 10: Sach := getBook(maSach) 11: Sach := get(maSach) 12: Sach 13: Sach 14: Thong tin chi tiet sach - 13 - Created by Trang H ng Sơn - Use Case “Thêm sách”: : Thu Thu : FormChinh : CtrlThemSach : FormThemSach : Sach 1: Yeu cau them sach 2: Load form ThemSach 3: Nhap thong tin sach moi 4: Boolean := insertBook(thongTinSach) 5: Boolean := validate(thongTinSach) 6: [ validate = True ] Boolean := insert(thongTinSach) 7: True 8: True 9: Thong bao them sach cong - 14 - Created by Trang H ng Sơn IMPLEMENTATION DIAGRAM Component Diagram: - Là sơ ñ mô t thành ph n ph n m m c a h th ng (software components) s ph thu c gi a chúng sơ ñ ki n trúc h th ng ph n m m - Thành ph n ph n m m: module ch c c a h th ng, có th là: + gói thư vi n jar (Java) ho c dll (Microsoft) + chương trình ph c v exe + d ch v h th ng (service) +… - Ví d : + Winform application: GUI (Views) eLibrary Lib (Controllers, Models, Utils, ) MS.SQLServer + Distributed application: GUI (Views) eLibrary Service (Controllers, Models, Utils, ) MS.SQLServer + Web application: Client eLibrary Server (Views, Controllers, Models, Utils, ) MS.SQLServer + Web service application: Client eLibrary Server (Views) eLibrary Services (Controllers, Models, Utils, ) MS.SQLServer -1- Created by Trang H ng Sơn Deployment Diagram: - Là sơ đ mơ t ki n trúc h th ng ph n c ng giao th c mà nodes (máy tính, máy in, đ u đ c th t , …) trao đ i thơng p v i - Ví d , Web application: External Client Internal Client HTTP HTTP eLibrary Server TCP/IP MS.SQLServer -2- Interview Các công vi c c a m t thư vi n ñi n t đư c làm rõ d n d n thơng qua đ i tho i gi a phân tích viên khách hàng, ngư i ñ t hang xây d ng h th ng Hãy xem xét k ño n h i tho i gi a h đư c mơ t v n t t dư i ñây - Phân tích viên: ð c gi đ n đâu thư vi n ñ làm nh ng vi c gì? - Khách hàng: ð c gi đ n hang lang c a thư vi n đ tìm thơng tin v tài li u mu n mư n Sau tìm th y sách (t p chí) đ mư n, ñ c gi ñ n giá sách (t p chí) đ l y sách (t p chí) - Phân tích viên: ð c gi tìm ki m nh ng thơng tin gì? - Khách hàng: Thơng tin v sách hay tài li u v tác gi c a tài li u ñư c s p theo th t abc Các thơng tin đư c ghi phích đ t h p khác ho c đư c truy c p t máy tính đ t t i hành lang - Phân tích viên: CSDL c a thơng tin đ ñâu - Khách hàng: CSDL ñư c lưu máy c a m ng LAN, cịn máy đ u cu i ñư c ñ t thư vi n - Phân tích viên: Có th tìm tài li u theo lo i d li u nào? - Khách hàng: D li u đ tìm sách t p chí tương t nhau, bao g m s xu t b n (ISBN), tên, năm xu t b n, nhà xu t b n Nhưng sách cịn có lo i d li u khác tác gi , th lo i t p chí có t p lĩnh v c - Phân tích viên: Có nh ng lo i sách t p chí thư vi n? - Khách hàng: Ngồi sách t p chí dư i d ng gi y cịn có dư i d ng ñi n t Các tài li u ñi n t ñư c lưu CSDL c a máy ch - Phân tích viên: Ai qu n tr kh i lư ng l n tài li u d li u ñi n t này? - Khách hàng: Nhân viên thư vi n - Phân tích viên: ð n có th th y rõ ràng r ng m i đ c gi đ u có quy n tìm ki m tài li u máy tính đ mư n Có th đ c sách hay t p chí lưu tr dư i d ng s Có th mư n sách hay t p chí Bây gi th o lu n v ti n trình mư n sách - Khách hàng: Sau tìm tài li u mư n b t kỳ có th thư vi n đ u có th mư n tài li u Có th mư n tài li u in t i bàn cho mư n c a thư vi n N u quy n sách hay t p t p chí thư vi n th thư đưa cho đ c gi - Phân tích viên: V y, có hai trư ng h p x y ra, cịn h t sách (t p chí) thư vi n? - Khách hàng: N u h t tài li u ñ c gi có th ñ t mư n trư c; có tài li u thư vi n s thơng báo cho đ c gi ð c gi ph i ñ n thư vi n ñ mư n Chú ý r ng tài li u s ch dành cho ñ c gi ñã ñăng ký trư c vòng hai tu n l k t ngày thơng báo - Phân tích viên: N u cịn tài li u thư vi n sao? - Khách hàng: Trong trư ng h p th thư s ki m tra d li u v ñ c gi xem đ c gi có th thư vi n hay khơng N u có th N u có th , th thư ghi l i ISBN c a tài li u mư n thông tin v ñ c gi mư n vào s mư n, ñ ng th i ghi vào CSDL mư n M i ñ c gi ch ñư c mư n m t s sách (t p chí) nh t đ nh, kho n th i gian nh t ñ nh - Phân tích viên: Th thư có th mư n sách hay t p chí khơng? - Khách hàng: Có, m i th thư có m t b n ghi mư n - Phân tích viên: Ai th c hi n vi c ghiu thông tin mư n tài li u vào CSDL? - Khách hàng: Ngoài máy tr m m ng đ tìm ki m tài li u, th thư cịn có máy tr m đ ki m tra thơng tin v đ c gi ,tài li u có cịn khơngvà xem danh sách đơc gi ph i tr tài li u h t h n mư n - Phân tích viên: V i tài li u n t sao? - Khách hàng: Nó ln ln có s n thư vi n - Phân tích viên: Trư ng h p đ c gi khơng tìm th y sáchtrong danh sách tìm ki m th thư có khun nh khơng? - Khách hàng: Th thư có th khuy n cáo đ c gi , đ c gi có đ ng ý hay khơng - Phân tích viên: Trên ta trao ñ i ho t ñ ng c a nhân viên thư vi n liên quan ñ n vi c mư n, ñ t trư c, khuy n cáo tìm ki m Bây gi trao đ i v giao thi p gi a th thư v i ñ c gi , sách t p chí - Khách hàng: Nhi m v c a th thư t p trung vào mư n tr sách,t p chí H g i thơng báo đ n ph i tr sách h t h n mư n, ñ n ñ t trư c ñ mư n ñã có sách thư vi n - Phân tích viên: Thư vi n có th mư n nhân viên đ qu n tr kh i d li u l n hay khơng? - Khách hàng: Thư vi n có nhân viên nh p li u làm vi c máy tr m H nh p li u b o trì, cịn chun gia CSDL th c hi n qu n tr CSDL - Phân tích viên: N u mu n tr thành đ c gi c a thư vi n c n làm gì? - Khách hàng: H ph i đ n phịng ti p ñón ñ làm th t c Th thư ghi b n ghi m i ñ ghi h tên, ñ i ch nơi ch ng minh thư, s ñi n tho i e-mail ngày tháng năm sinh Sau ñăngvà in b n ký, th thư in th thư vi n ñưa cho ñ c gi in b n ghi gi y ñ lưu h sơ thư vi n - Phân tích viên: Nh p thông tin v sách t p chí th nào? - Khách hàng: Sách t p chí có r t nhi u thu c tính chung,bao g m ISBN, tên, năm xu t b n nhà xu t b n M i n ph m cịn có s lư ng b n thư vi n đơi chúng cịn kèm theo d li u đa phương ti n - Phân tích viên: Thư vi n có h tr d li u đa phương ti n cho n ph m ñi n t n ph m gi y? - Khách hàng: Không quan tâm đ n hình th c n ph m Thư vi n h tr d li u ña phương ti n cho c n ph m ñi n t n ph m gi y - Phân tích viên: Khi tìm ki m thơng tin v tài li u, tơi có th xem d li u đa phương ti n? D li u ña phương ti n nh ng d li u lo i gì? - Khách hàng: N u k t qu tìm ki m máy tính d li u đa phương ti n đ c gi có th xem D li u ña phương ti n bao g m văn b n, âm thanh, nh hình nh đ ng - Phân tích viên: Nh p thơng tin v tác gi th nào? - Khách hàng: Thông tin v tác gi ñư c nh p riêng Chúng bao g m h tên, ngày tháng năm sinh nơi sinh Khi nh p thông tin v sách, n u tên tác gi có danh sách tác gi nhân viên nh p li u ch vi c ch n d li u t danh sách, n u khơng ph i t o thơng tin tác gi Ngồi cịn ph i nh p lo i sách - Phân tích viên: Cịn t p chí sao? - Khách hàng: S t p chí lĩnh v c c a - Phân tích viên: Như ñã nói t n t i hai loai lưu tr thơng tin (đi n t gi y), v y, bi u di n d li u ña phương ti n bì gi y b ng cách nào? - Khách hàng: D li u ña phương ti n ch lưu tr dư i khuôn d ng s Th gi y ñư c in t b n ghi ch ch a có m t vài thơng tin c n thi t cho th - Phân tích viên: Ta kh o sát sách, t p chí thơng tin tác gi - Khách hàng: S lư ng n ph sách S li u c n quan tâm s th y công vi c c a th thư bao g m nh p tên , ñ c gi Nhưng s lư ng n ph m sao? m đư c nh p đ ng th i nh p thông tin v lư ng m i s lư ng có thư vi n - Phân tích viên: Có th cho r ng cơng vi c phân tích v cơng vi c c a th thư ñã ñư c th c hi n ñ y ñ ? - Khách hàng: ðúng v y! Created by Trang H ng Sơn Cài ñ t l p Student theo thi t k sau: Tính ñóng gói (encapsulation): thay ñ i l p Student theo thi t k sau: Tính tr u tư ng (abstraction) + Tính k th a (inheritance): cài đ t l p Animal, Dog, Cat theo thi t k sau: Tính đa hình (polymorphism): 4.1 N p ch ng hàm (overloading method): cài ñ t l p Adder theo thi t k sau: 4.2 Ghi ch ng hàm (overriding method): cài ñ t l p Parent, Children theo thi t k sau: -1- Created by Trang H ng Sơn Giao di n (interface): 5.1 Cài ñ t l p / giao di n Animal l p Dog, Cat theo thi t k sau: 5.2 Cài ñ t giao di n Animal, Friendly l p Dog, Cat theo thi t k sau: -2- ... ng sách H th ng thêm s lư ng cho sách có H th ng th? ?ng báo nh p thành c? ?ng th ng th? ?ng báo th? ?ng tin sách kh? ?ng h p l H th ng yêu c u th thư nh p l i th? ?ng tin Th thư nh p l i th? ?ng tin sách -7-... chí H th ng hi n th danh sách sách tìm ñư c B n ñ c ch n m t quy n sách đ xem th? ?ng tin chi ti t H th ng hi n th th? ?ng tin chi ti t sách H th ng th? ?ng báo kh? ?ng có sách tho t khố tiêu chí: H. .. sách ñã có CSDL: H th ng h i th thư có thêm s lư ng sách hay kh? ?ng Th thư thêm s lư ng sách H th ng thêm s lư ng cho sách có H th ng th? ?ng báo thêm sách thành c? ?ng th ng th? ?ng báo th? ?ng tin sách

Ngày đăng: 27/06/2014, 12:20

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w