Nasıl gevşek birleştiğinde bir uygulama büyük resmi anlamak için?
Kod gevşek bağlantı ve bağımlılık enjeksiyon kullanarak geliştirmekteyiz.
""Style sınıflar yapıcı ve arayüz. bir uygulayan bir yöntem var servis çok Her sınıf çok kolay bir izolasyon içinde anlamaktır.
Ancak, kaplin gevşeklik yüzünden, bir sınıf bakıyorsun sınıfları büyük resmin neresinde etrafında veya hakkında bir şey söylemiyor.
Arabirimler üzerinden gitmek zorunda, çünkü kolay değil işbirlikçileri Eclipse kullanarak atlamak için. Arayüz aslında takılı olan bulmada yardımcı olduğunu Runnable
, ise. Gerçekten gerekli Dİ konteyner tanımına geri gidip olayları oradan anlayabilmek için.
İşte bağımlılık enjekte hizmet sınıfından bir kod satırı:-
// myExpiryCutoffDateService was injected,
Date cutoff = myExpiryCutoffDateService.get();
Kaplin buraya kadar gevşek. Son kullanma tarihi kelimenin tam anlamıyla herhangi bir şekilde uygulanması.
Daha fazla birleştiğinde bir uygulama gibi görünebilir.
ExpiryDateService = new ExpiryDateService();
Date cutoff = getCutoffDate( databaseConnection, paymentInstrument );
Sıkı eşleşmiş sürümünden, kesim tarihinden bir şekilde ödeme aracı veritabanı bağlantısı kullanarak kararlı olduğunu iddia edebilirim.
İlk stili ikinci stil kodu daha anlaşılması zor bir kod buluyorum.
Bu sınıf okurken, ben olmadığını iddia edebilirgerekkesim tarihinden anladım nasıl olduğunu. Bu doğru, ama eğer bir hata üzerinde daralması ya da bir geliştirme yuvası için gereken çalışma yaparım, bunu bilmek için yararlı bilgiler.
Başkasının bu sorunu yaşayan? Ne çözümler var? Bu sadece bir şey için ayarlamak için. Sınıfları birlikte kablolu bir şekilde görüntülenmesi izin vermek için herhangi bir alet var mı? Sınıfları daha büyük ya da daha fazla birleştiğinde yapmalıyım?
(Herhangi bir cevap ilgilendiğim gibi kasıtlı olarak bu soru konteyner-agnostik kaldı).
CEVAP
Tek bir paragrafta bu soruya nasıl cevap vereceğimi bilmiyorum olsa da, bunu cevaplamak için bir blog yazısı yerine çalıştı: http://blog.ploeh.dk/2012/02/02/LooseCouplingAndTheBigPicture.aspx
Özetlemek gerekirse, en önemli noktaları olduğunu bulmak:
- Gevşek bir kod temel bir anlayış gerektirirfarklı bir zihniyet. 'İşbirlikçiler' de az ya da çok önemli olmalı. atlamak için zor olsa da
- Gevşek bağlantı ile ilgilianlayış bütün olmadan bir parça anlayış. Nadiren aynı anda anlamak gerekir.
- Bir hata tespit edildi, güvenmek gerekiryığın izlemeleriniyerine işbirlikçileri hakkında bilgi edinmek için bu kod statik yapısı.
- Geliştiriciler sorumluluğu bulunuyoryazmabunu anlamak kolaydır emin olmak için kod geliştirici sorumluluğu değilokumakod.
Nasıl nispeten büyük silindir bir uygu...
Nasıl böyle büyük mükafat 4 ile özel u...
Nasıl div içeriğini daha büyük değil y...
Nasıl NSString için bilimsel deneyler ...
Nasıl bir uygulama veya bir işlemin as...