© 2004, HOÀNG MINH SƠN Chương Kỹ thuật lập trình Chương 8: Tiến tới tư lập trình hướng ₫ối tượng 0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010000010 stop() 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 1010011000110010010010+ B*u; 1010011000110010010010 y = A*x 1100101100100010000010+ d*u; 1100101100100010000010 x = C*x LQGController 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 start() 1010011000110010010010 stop() 1010011000110010010010 1100101100100010000010 1100101100100010000010 10/20/2005 Nội dung chương © 2004, HỒNG MINH SƠN 8.1 8.2 8.3 8.4 8.5 8.6 Đặt vấn ₫ề Giới thiệu ví dụ chương trình mơ Tư "rất" cổ ₫iển Tư hướng hàm Tư dựa ₫ối tượng (object-based) Tư thực hướng ₫ối tượng Chương 8: Tiến tới tư hướng đối tượng © 2005 - HMS 8.1 Đặt vấn ₫ề „Designing object-oriented software is hard, and designing reusable object-oriented software is even harder It takes a long time for novices to learn what object-oriented design is all about Exprienced designers evidently know something inexperienced ones don't © 2004, HỒNG MINH SƠN One thing expert designers know not to is solve every problem from first principles Rather, they reuse solutions that have worked for them in the past When they find a good solution, they use it again and again Such experience is part of what makes them experts Consequently, you'll find recurring patterns of classes and communicating objects in many object-oriented systems These patterns solve specific design problems and make object-oriented design more flexible, elegant, and ultimately reusable “ Erich Gamma et al.: Design Patterns: Elements of Reusable ObjectOriented Software, Addison-Wesley, 1995 Chương 8: Tiến tới tư hướng đối tượng © 2005 - HMS 8.2 Phần mềm mơ kiểu FBD 1(t) Sum StaticGain Limiter Integrator Scope © 2004, HOÀNG MINH SƠN Nhiệm vụ: Xây dựng phần mềm ₫ể hỗ trợ mô thời gian thực cách linh hoạt, mềm dẻo, ₫áp ứng ₫ược yêu cầu toán cụ thể Trước mắt chưa cần hỗ trợ tạo ứng dụng kiểu kéo thả công cụ ₫ồ họa Chương 8: Tiến tới tư hướng đối tượng © 2005 - HMS 8.3 Tư cổ ₫iển © 2004, HỒNG MINH SƠN // SimProg1.cpp #include #include #include void main() { double K =1,I=0, Ti = 5; double Hi = 10, Lo = -10; double Ts = 0.5; double r =1, y=0, e, u, ub; cout