4 Mayıs 2020 Pazartesi

De Morgan Kuralı - Boolean Logic Kuralı

Giriş
De Morgan yasası notlarım. Bu yasa ile kodu daha okunabilir hale getirmek mümkün.

Bazı Kodları Boolean Logic Değiştirilerek Daha Okunabilir Yapmak Mümkün Değil
Örnek
Elimizde şöyle bir kod olsunnn
if (StringUtils.isNotBlank(Constant.A)
            || StringUtils.isNotBlank(Constant.B)
            || StringUtils.isNotBlank(Constant.C)
            || StringUtils.isNotBlank(Constant.D)
            || StringUtils.isNotBlank(Constant.E)) {
        return true;
}
Bu kodu en fazla şöyle yapabiliriz
if (Stream.of(Constant.A, Constant.B, Constant.C, Constant.D, Constant.E)
          .anyMatch(StringUtils::isNotBlank)) {
    return true;
}
veya şöyle yapabiliriz. Her iki durumda da boolean logic ile oynama yapmak mümkün olmuyor.
if(!StringUtils.isAllBlank(Constant.A,Constant.B,.......)){
    return true;
}

And'in Or Olması
A ve B değilse yani C ise anlamına gelir.

Örnek
Elimizde şöyle bir kod olsun. A ve B değilse anlamına gelir. A benden küçük, B ise benden büyük anlamına gelsin. Aynı iki sayıyı bu kurala sokarsam A false B de false döner. Sonuç ise  true olur
!(a && b)
Bu kodu şu hale getirebiliriz. !A true döner. !B de true döner. Sonuç true olur.
!a || !b

Hiç yorum yok:

Yorum Gönder