binary-world_1048-8575

10 nguyên tắc thiết kế hướng đối tượng (Object-Oriented Programming – OOP) mà lập trình viên Java nên học – Phần 1

Các nguyên tắc thiết kế hướng đối tượng là cốt lõi của lập trình OOP, nhưng hầu hết các lập trình viên Java theo đuổi các mẫu thiết kế như mẫu Singleton, mẫu trang trí hoặc mẫu Observer và không chú ý nhiều vào việc học phân tích và thiết kế hướng đối tượng. Điều quan trọng là học các kiến ​​thức cơ bản về lập trình hướng đối tượng như Abstraction (tính Trừu tượng), Encapsulation (tính Đóng gói), Polymorphism (tính Đa hình) và Inheritance tính Kế thừa). Nhưng đồng thời, việc biết các nguyên tắc thiết kế hướng đối tượng cũng quan trọng không kém. Chúng sẽ giúp bạn tạo ra một thiết kế mô-đun rõ ràng, dễ kiểm tra, gỡ lỗi và bảo trì trong tương lai. Xin giới thiệu các nguyên tắc thiết kế hướng đối tượng (Object-Oriented Programming – OOP) cho các lập trình viên Java, những người ít tiếp xúc với nó hoặc đang trong giai đoạn học tập.
1. Đừng lặp lại chính mình

Nguyên tắc thiết kế hướng đối tượng đầu tiên nên là không lặp lại chính mình, có nghĩa là không viết mã trùng lặp, thay vào đó sử dụng Abstraction để trừu tượng hóa những thứ phổ biến ở một nơi. Nếu bạn có một khối mã ở hơn hai nơi, hãy cân nhắc việc biến nó thành một phương thức riêng biệt hoặc nếu bạn sử dụng một giá trị được mã hóa cứng nhiều lần, hãy biến chúng thành hằng số cuối cùng.
Lợi ích của nguyên tắc thiết kế hướng đối tượng này là trong bảo trì. Điều quan trọng không phải là lạm dụng nó, sao chép không phải là cho mã, mà là cho chức năng. Điều đó có nghĩa là nếu bạn đã sử dụng mã chung để xác thực OrderID và SSN thì điều đó không có nghĩa là chúng giống nhau hoặc chúng sẽ giữ nguyên trong tương lai. Bằng cách sử dụng mã chung cho hai chức năng khác nhau hoặc bạn kết hợp chặt chẽ chúng mãi mãi và khi OrderId của bạn thay đổi định dạng, mã xác thực SSN của bạn sẽ bị hỏng. Vì vậy, hãy cẩn thận với khớp nối như vậy và chỉ không kết hợp bất cứ thứ gì sử dụng mã tương tự nhưng không liên quan.

computer-program-code_1385-530

Hạn chế viết mã trùng lặp

2. Đóng gói những gì thay đổi

Chỉ có một thứ là không đổi trong lĩnh vực phần mềm và đó là “Thay đổi”, vì vậy hãy đóng gói mã mà bạn mong đợi hoặc nghi ngờ sẽ được thay đổi trong tương lai. Lợi ích của nguyên tắc Thiết kế OOP này là Dễ dàng kiểm tra và duy trì mã được đóng gói phù hợp.
Nếu bạn đang mã hóa bằng Java thì hãy tuân theo nguyên tắc biến biến và phương thức thành riêng tư theo mặc định và tăng từng bước truy cập, ví dụ từ riêng tư sang được bảo vệ và không công khai.

Một số mẫu thiết kế trong Java sử dụng Encapsulation, mẫu thiết kế Factory là một ví dụ về Encapsulation đóng gói mã tạo đối tượng và cung cấp tính linh hoạt để giới thiệu một sản phẩm mới sau này mà không ảnh hưởng đến mã hiện có.

Tóm lược

Tất cả các nguyên tắc thiết kế hướng đối tượng này giúp bạn viết mã linh hoạt và tốt hơn bằng cách phấn đấu độ gắn kết cao và khớp nối thấp. Lý thuyết là bước đầu tiên, nhưng điều quan trọng nhất là phát triển khả năng tìm ra khi nào nên áp dụng các nguyên tắc thiết kế này. Khi bạn đã nắm bắt được điều đó, bước tiếp theo là tìm hiểu các mẫu Thiết kế trong Java, sử dụng các mẫu thiết kế này để giải quyết các vấn đề phổ biến về phát triển ứng dụng và công nghệ phần mềm.

Tìm hiểu xem liệu chúng ta có vi phạm bất kỳ nguyên tắc thiết kế nào và ảnh hưởng đến tính linh hoạt của mã hay không, nhưng một lần nữa vì không có gì là hoàn hảo trên thế giới này, đừng luôn cố gắng giải quyết vấn đề với các mẫu thiết kế và nguyên tắc thiết kế mà chúng chủ yếu dành cho dự án doanh nghiệp lớn có chu kỳ bảo trì dài hơn. Điểm mấu chốt là, các lập trình viên chuyên nghiệp nên luôn cố gắng cho một giải pháp, mã hoặc thiết kế cặp đôi rất gắn kết và lỏng lẻo. Tìm kiếm mã nguồn mở từ Apache và Google là một số cách tốt để học các nguyên tắc thiết kế Java và OOP.

Leave a Comment

Your email address will not be published. Required fields are marked *