Avatar
0
Nguyen Thai Son Beginner
Phân biệt decorator và Proxy pattern
2 cái pattern này na ná nhau, đều có 1 vỏ bọc bên ngoài trước khi call vào. Vậy sự khác biệt lớn trong thực tế là gì
  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
  1. Hai design pattern này không hề na ná nhau.
  2. Decorator dùng để bổ sung thêm thuộc tính cho mội đối tượng, hoặc cũng có thể bổ sung thuộc tính cho một đối tượng để biến thành đối tượng khác, còn proxy thì hướng đến việc gọi hàm của lớp thực tế bên trong.

Ví dụ cho decorator:

class UserResponseDecorator {
    UserResponse decorate(UserModel model) {
        return UserResponse.builder()
            .username(model.username)
           .avatar(avatarService.getAvatarById(model.getAvatarId())
           .friends(friendService.getUserFriend(model.getId())
           .build();
   }
}

Ví dụ cho proxy:

class NetworkProxy {
    void openUrl(String url) {
        validate(url);
        actualNetwork.openUrl(url);
    }
}
  • 0
  • Reply