Tôi đã luôn lập trình bằng các ngôn ngữ thủ tục và hiện tại tôi đang hướng tới hướng đối tượng. Vấn đề chính tôi gặp phải là tôi không thể thấy cách thực hành định hướng đối tượng một cách hiệu quả. Tôi sẽ giải thích quan điểm của tôi. Khi tôi học PHP và C, nó khá dễ thực hành: đó chỉ là vấn đề chọn một cái gì đó và suy nghĩ về một thuật toán cho thứ đó.
Ví dụ, trong PHP, vấn đề là os ngồi xuống và suy nghĩ: "tốt, chỉ để thực hành, hãy để tôi xây dựng một ứng dụng với một khu vực quản trị nơi mọi người có thể thêm sản phẩm". Điều này khá dễ dàng, đó là vấn đề nghĩ đến một thuật toán để đăng ký một số người dùng, đăng nhập người dùng và thêm các sản phẩm. Kết hợp những thứ này với các tính năng PHP, đó là một cách tốt để thực hành.
Bây giờ, trong định hướng đối tượng, chúng ta có rất nhiều điều bổ sung. Đây không chỉ là vấn đề suy nghĩ về một thuật toán, mà là phân tích các yêu cầu sâu hơn, viết các trường hợp sử dụng, tìm ra các sơ đồ, thuộc tính và phương thức lớp, thiết lập phép tiêm phụ thuộc và nhiều thứ.
Điểm chính là trong cách tôi học hướng đối tượng, có vẻ như một thiết kế tốt là rất quan trọng, trong khi trong các ngôn ngữ thủ tục, một ý tưởng mơ hồ là đủ. Tôi không nói rằng trong các ngôn ngữ thủ tục, chúng ta có thể viết phần mềm tốt mà không cần thiết kế, chỉ vì để thực hành nó là khả thi, trong khi theo hướng đối tượng thì dường như không khả thi nếu không có thiết kế tốt, ngay cả khi thực hành.
Đây có vẻ là một vấn đề, bởi vì mỗi lần tôi đi thực hành, tôi cần phải tìm ra hàng tấn yêu cầu, trường hợp sử dụng, v.v., nó dường như không phải là một cách tốt để trở nên tốt hơn trong việc định hướng đối tượng, bởi vì điều này đòi hỏi Tôi có toàn bộ ý tưởng cho một ứng dụng mỗi khi tôi thực hành.
Do đó, cách tốt để thực hành định hướng đối tượng là gì?