Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 2 của 2 Đầu tiênĐầu tiên 12
Kết quả 11 đến 13 của 13
  1. #11
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Wazi Armstrong
    Với mình chia sẻ kinh nghiệm đồng nghĩa với ném gạch. Mình đã post bài lên thì sẵn sàng đợi người khác ném gạch. Như thế mới nhớ lâu đc. Vết đau thường nhớ lâu mà [IMG]images/smilies/daydreaming.gif[/IMG]

    Bài của bạn là Giải phương trình Bậc 2, sử dụng phương pháp lập trình hướng đối tượng đúng không.

    Vậy cứ coi tất cả là đối tượng đi
    1. Phương thức main thường không nói đến trong thiết kế vì nó chỉ như chìa khóa để khởi động trong chương trình.
    2. Có thể hình dung ra chính ta sẽ có (các) lớp là:
    2.1 Chương trình giải phương trình bậc 2 (TwoDegreeEquationSolver) Lớp này có hàm khởi tạo với 3 tham số chính là 3 hệ số a, b, c của phương trình.
    Phương thức solve();
    2.2 Do kết quả của PTB2 có nhiều trường hợp nên đầu ra có thể tạo 1 class riêng cho nó, gọi là Result đi
    Lớp Result sẽ có phương thức hasRoot() để kiểm tra xem phương trình có nghiệm hay không và phương thức getRoots() trả về một mảng là nghiệm của phương trình (mảng có thể có 0, 1, hoặc 2 phần tử, 0 trong trường hợp ko có nghiệm)
    3. Hàm main() sẽ tiến hành đọc dữ liệu người dùng nhập vào, rồi khởi tạo 1 thể hiện của TwoDegreeEquationSolver, solve rồi nhận lấy kết quả ở đầu ra và xuất trả lại người dùng.
    Thiết kế này không phải là tối ưu nhưng ít ra nó cũng dùng lại được cái core của chương trình (solve-> Result), bạn có thể đem nó cho vào 1 chương trình lớn hơn mà không phải sửa gì.

    Nhược điểm trong thiết kế của bạn
    1. Gộp chung xử lí IO với logic. Class phươngtrinh của bạn lại tồn tại phương thức nhap() ??? Một số trường hợp mình đã gặp trên diễn đàn này: sinhvien.nhap(); nguoi.nhap() rất vô lí!!!
    2. Logic bạn rải rác khắp nơi và thường không đúng chức năng. Ví dụ trong hàm main(), tại sao việc giải một phương trình bậc 2 lại bắt đầu bằng việc tạo 1 đối tượng điều kiện??? rồi thì đối tượng này lại nhập, nhập cái gì??? trong khi đối tượng phương trình lại chẳng thấy đâu... Trong dieukien.kiemtra() tại sao lại có in kết quả???

    Lời kết:
    Lập trình hướng đối tượng sinh ra với mục đích làm đơn giản hóa logic, làm cho mã lệnh chương trình gần với thực tế hơn. Vì thế khi bạn lập trình hướng đối tượng, hãy suy nghĩ như 1 con người, đừng cố nghĩ như 1 cái máy.

    Thân!
    PS: Lâu lắm rồi không viết bài dài. Sắp đến bóng đá nên vội không format đẹp được [IMG]images/smilies/1.gif[/IMG]
    pro viết code giúp mình coi được không mới nhập môn nên hơi khó hiểu

  2. #12
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn có nghe ông bà ta dạy là thùng rỗng kêu to không?
    Bạn giỏi hay không thì tôi không biết, nhưng qua cách nhận xét của bạn, tôi có thể nhận xét một điều, bạn là một lập trình viên quá tự cao, tự đại.

    - - - Nội dung đã được cập nhật ngày 12-06-2015 lúc 04:04 PM - - -

    Trích dẫn Gửi bởi Wazi Armstrong
    1. Cấu trúc dở tệ
    2. Nếu các pro ko ném gạch thì bạn bỏ qua câu 1, coi như chưa nói gì
    Bạn có nghe ông bà ta dạy là thùng rỗng kêu to không?
    Bạn giỏi hay không thì tôi không biết, nhưng qua cách nhận xét của bạn, tôi có thể nhận xét một điều, bạn là một lập trình viên quá tự cao, tự đại.

  3. #13
    Trích dẫn Gửi bởi JonyHoTran
    Bạn có nghe ông bà ta dạy là thùng rỗng kêu to không?
    Bạn giỏi hay không thì tôi không biết, nhưng qua cách nhận xét của bạn, tôi có thể nhận xét một điều, bạn là một lập trình viên quá tự cao, tự đại.

    - - - Nội dung đã được cập nhật ngày 12-06-2015 lúc 04:04 PM - - -



    Bạn có nghe ông bà ta dạy là thùng rỗng kêu to không?
    Bạn giỏi hay không thì tôi không biết, nhưng qua cách nhận xét của bạn, tôi có thể nhận xét một điều, bạn là một lập trình viên quá tự cao, tự đại.
    còn bạn là thằng ba phải, viết ngu thì người ta nói thôi

 

 
Trang 2 của 2 Đầu tiênĐầu tiên 12

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •