Refactoring Design Pattern với tính năng mới trong Java 8

Tram Ho

Trong bài này, tôi sẽ giới thiệu với các bạn cách sử dụng một số tính năng mới trong Java 8 như Lambda , Function, Supplier, … để refactor code của một số Design Pattern.

Refactoring Strategy Design Pattern

Strategy Pattern là gì?

Các bạn xem lại bài viết “Hướng dẫn Java Design Pattern – Strategy“.

Ví dụ Strategy Pattern

Strategy.java

Strategy Pattern không sử dụng Lambda

StartegyPatternExample.java

Strategy Pattern sử dụng Lambda

Refactoring Observer Design Pattern

Observer Pattern là gì?

Các bạn xem lại bài viết “Hướng dẫn Java Design Pattern – Observer“.

Ví dụ Observer Pattern

Observer.java

Subject.java

AccountService.java

Observer Pattern không sử dụng Lambda

Observer Pattern sử dụng Lambda

Chạy 2 chương trình trên, ta có cùng kết quả:

Refactoring Chain of Responsibility Pattern

Chain of Responsibility Pattern là gì?

Các bạn xem lại bài viết “Hướng dẫn Java Design Pattern – Chain of Responsibility“.

Ví dụ Chain of Responsibility Pattern

Filter.java

Chain of Responsibility Pattern không sử dụng Lambda

Chain of Responsibility Pattern sử dụng LambdaFunction

Lưu ý: UnaryOperator là một Function, có cùng kiểu dữ liệu đầu vào và đầu ra. UnaryOperator<String> tương đương với cách viết Function<String, String>.

Chạy 2 chương trình trên, chúng ta có cùng kết quả:

Refactoring Factory Method Design Pattern

Factory Method Pattern là gì?

Các bạn xem lại bài viết “Hướng dẫn Java Design Pattern – Factory Method“.

Ví dụ Factory Pattern

Bank.java

TPBank.java

VietcomBank.java

BankType.java

Factory Method Pattern không sử dụng Java 8

Factory Method Pattern sử dụng SupplierMethod Reference

Java 8 mang đến cho chúng ta rất nhiều tiện ích, các bạn hãy thử refactor code của mình sang Java 8 để code được gọn ràng hơn.

Link bài viết gốc: https://gpcoder.com/6200-refactoring-design-pattern-voi-tinh-nang-moi-trong-java-8/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo