24 Şubat 2023 Cuma

Result Object

Giriş
Eğer bir metod birden fazla sonuç dönecekse kullanılır. Java'daki Optional Result Object kullanımını tam karşılamıyor. Çünkü hata durumunda hata mesajı yerine exception fırlatıyor. Açıklaması şöyle
using exceptions for expected cases is considered an anti-pattern
Yani Optional kullanımı şöyle
public Account findAccountByUserIdX(int userId) {
var user = repository.findById(userId).orElseThrow(UserNotFoundException::new); return repository.findAnAccountOfUser(user).orElseThrow(AccountNotFoundException::new); }
Bunun yerine bazı Java kütüphaneleri Either diye bir yapı sunuyor

Not :Girdi için Parameter Object yazısına bakabilirsiniz

Örnek
jar içindeki main method nesnesini bulmak isteyelim. İki şeyden birisini dönebiliriz.
1. Method nesnesi
2. Hata mesajı

Şöyle yaparız
class MainMethodFinder {

  Result result = new Result();

  static class Result {

    Method mainMethod;

    private String errorMessage;

    public String getErrorMessage() {
      return errorMessage;
    }

    public Method getMainMethod() {
      return mainMethod;
    }

    boolean hasError() {
      return !StringUtil.isNullOrEmpty(errorMessage);
    }
  }
  ...
}


Hiç yorum yok:

Yorum Gönder