Sadece bu kodlara bakaraktan Test fonksiyonun ne yaptığını anlamak imkansızdır. Yani bu kodu anlayabilmek için analiz() ve uygunMu() fonksiyonlarına bakmamız gerekir ve hatta belkide bu fonksiyonlar içerisinde çağırılan birsürü fonksiyonu incelememiz gerekebilir.
İlk olarak göze çarpan problem uygunMu() fonksiyonunun bool tipinde bir dönüt verip vermeyeceğine garantimizin olmaması.
İkinci olarak göze çarpan problem analiz() fonksiyonunun kim bilir ne yaptığı
İlk if durumu gibi bir string mi döndürecek eğer durum böyle değilse elimizde bazı durumlarda string döndüren ama bazı durumlarda da döndürmeyen bir fonksiyon var (Test() fonksiyonu). Diyelim ki analiz bir int döndürsün bu durumda Test() bir string de döndürebilir bir integer da.
Ilk olarak, bu dil ile alakali bir problem degil diye dusunuyorum. Tamamen gelistiricinin problemi. Eger ben o kodu: checkAvailabilityForHomePageRender(x) gibi bir seye cevirsem, fonksiyona girmeden ne islem yapacagini anlardik degil mi ? Yada analiz() fonksiyonunu alip: `analyzeAvailabilityOfComponents() gibi birseye cevirsek, self explanatory olacaktir.
Vurgulamak istedigim sey, evet aldigi parametrenin ne oldugu da bir bakima trivial olmus oluyor bu noktada. Yani sadece fonksiyon signitureini kontrol etmek bile yeterli olacaktir.
Ilk olarak, bu dil ile alakali bir problem degil diye dusunuyorum. Tamamen gelistiricinin problemi. Eger ben o kodu: checkAvailabilityForHomePageRender(x) gibi bir seye cevirsem, fonksiyona girmeden ne islem yapacagini anlardik degil mi ? Yada analiz() fonksiyonunu alip: `analyzeAvailabilityOfComponents() gibi birseye cevirsek, self explanatory olacaktir.
Vurgulamak istedigim sey, evet aldigi parametrenin ne oldugu da bir bakima trivial olmus oluyor bu noktada. Yani sadece fonksiyon signitureini kontrol etmek bile yeterli olacaktir.
Bunlarin yaninda, Encapsulation adi altinda bahsettigin '_' ve '__' deginmek istiyorum. Acikcasi, var _isLoading = false; seklinde parametre tanimlamak daha kolay ve anlasilir geliyor bana. Private diye scope acmak yada Javadaki gibi herseye Public x = this; gibi uzun uzun yazmaya kiyasla.
Ama tabi ki, bunlar bir gelistirici olarak kendi dusuncemdir, elestiriye de acigim bu konuda sayet yanlis oldugumu dusunuyorsaniz.
abstract class BaseType { }
class SomeXType extends BaseType { }
class SomeYType extends BaseType { }
class SomeZType extends BaseType { }
class SomeVisitor() {
public **** visit(SomeXType t) {
System.out.println("x type is : " + t.getClass().getName());
}
public **** visit(SomeYType t) {
System.out.println("y type is : " + t.getClass().getName());
}
public **** visit(BaseType t) {
System.out.println("base type is : " + t.getClass().getName());
}
}
public class Main {
public static **** main(String[] args) {
SomeVisitor visitor = new SomeVisitor();
SomeXType x = new SomeXType();
SomeYType y = new SomeYType();
SomeZType z = new SomeZType();
visitor.visit(x);
visitor.visit(y);
visitor.visit(z);
}
}
x type is : SomeXType
y type is : SomeYType
base type is : SomeZType
Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.