Sorunuza bir soru ile cevaplayacağım; bu sabah işe gittikten sonra (aslında öyle yaptığını farzedeceğim), motorun yakıt-hava karışımlarına girmesi için vanaları nasıl açtığını ve sonra onları ateşlediğini düşündün mü? Hayır . Yolda sürerken aracınızın motorunun nasıl çalıştığını umursamıyorsunuz . Sen o bakım yapar işi.
Diyelim ki bir gün arabanız çalışmıyor. Başlamaz, bir çubuk fırlatır, bir kemeri kırar, mesajlaşmakla meşgul olduğunuzda kendi barızlığınız olmadan açık bir şekilde bu bariyere girer. Şimdi, yeni bir arabaya ihtiyacınız var (en azından geçici olarak). Bu yeni arabanın nasıl çalıştığını tam olarak önemsiyor musunuz? Hayır. Önemsediğiniz şey, önce işe yaradığı, ikincisi ise eski arabanızı yenisini sürmek için kullandığınız bilgi ve becerileri kullanabilmenizdir. İdeal olarak, kullandığınız araçta hiçbir değişiklik olmadığı size anlaşılmalıdır. Gerçekçi olarak, bu yeni arabanın çalışma şekli size mümkün olduğunca az “sürpriz” vermeli.
Bu temel ilkeler, kapsülleme ve soyutlamanın arkasındaki ana ilkedir. Bir nesnenin yaptığı şeyi nasıl yaptığını bilmek, yaptığı şeyi yapmak için onu kullanmanın zorunlu olmamalıdır. Bilgisayar programlamasında bile, programınızı çalıştıran CPU içindeki elektrik yollarının detayları, en az yarım düzine G / Ç talimatı, sürücü, işletim sistemi yazılımı ve çalışma zamanı katmanının arkasında kalıyor. Çok başarılı yazılım mühendislerinin birçoğu, tam bir donanım mimarisi, hatta işletim sistemi kurulumundan endişe duymadan mükemmel bir kod yazar. Ben dahil.
Kapsülleme / bilgi gizleme "nasıl yaparsa umursama, sadece yaparsa umursama" zihniyetine izin verir. Hedefiniz, tüketicinin kolay kullanabileceği şekilde tüketiciye neyin yararlı olduğunu göstermelidir. Şimdi, gerçek dünyaya dönersek, bu bir otomobilin kullanıcıya iç çalışmalarla ilgili herhangi bir bilgi vermemesi gerektiği veya otomobilin kullanıcıya yalnızca ateşleme, direksiyon simidi gibi en temel işlevselliklere izin vermesi gerektiği anlamına gelmez. ve pedallar. Tüm otomobillerde hızölçerler ve yakıt göstergeleri, takometreler, salak ışıklar ve diğer geri bildirimler vardır. Neredeyse tüm arabalarda ayrıca farlar, dönüş sinyalleri, telsiz, koltuk ayarı vb. Gibi çeşitli bağımsız alt sistemler için anahtarlar bulunur. Bazı araçlar sınırlı kaymalı merkez farkının hassasiyeti gibi bazı oldukça ezoterik kullanıcı girişine izin verir. Her durumda, eğer yeterince biliyorsanız, açabilir ve biraz farklı bir şekilde çalışmasını sağlamak için şeyleri değiştirebilirsiniz. Ancak, çoğu durumda, belki, sadece belki, kullanıcı yakıt pompalarını doğrudan ve bağımsız olarak kabinin içinden kontrol edememelidir? Belki, sadece belki, kullanıcı fren pedalına basmadan, fren lambalarını yakamamalıdır?
Soyutlama, "bu aynı değildir, ancak her ikisi de XI olduğu gibi onları herhangi bir X’in kullanabileceği" zihniyetine izin verir. Nesneniz bir soyutlamayı miras alırsa veya uygularsa, tüketicileriniz uygulamanızın soyutlamanın bilinen diğer uygulamalarıyla aynı veya benzer bir sonuç üretmesini beklemelidir. Bir Toyota Camry ve bir Ford Fusion, "araba" dır. Bu nedenle, direksiyon gibi ortak bir beklenen işlevlere sahiptirler. Saat yönünün tersine çevirin, araba sola gider. Saat yönünde çevir, araba sağa gider. Amerika Birleşik Devletleri'ndeki herhangi bir araca binebilir ve aracın bir direksiyon simidi ve en az iki pedala sahip olmasını bekleyebilirsiniz; sağda biri "araba gider" pedalı ve merkezde "araba durur" pedalı .
Soyutlamanın bir sonucu olarak "en az şaşkınlık teorisi" denir. Test sürüşü için yeni bir arabanın direksiyonuna geçtiyseniz, direksiyon simidini saat yönünde döndürdüyseniz ve araba sola döndüyse, en azını söylemekten hayret duyarsınız. Bayiyi bir POS'u satmakla suçlayacaktınız ve yeni davranışın neden alıştığınızdan daha "iyi" olduğu veya bunun "belgelendirildiği" veya nasıl "ne kadar iyi olduğu nedenlerinden herhangi birini dinlemeniz muhtemel değildir. şeffaf "kontrol sistemidir. Bu yeni arabaya ve sürdüğünüz diğerlerine rağmen hala "otomobil" olmakla birlikte, bu arabayı sürerken, yeni arabayı başarılı bir şekilde sürmek için bir aracın nasıl sürülmesi gerektiği ile ilgili bazı temel kavramları değiştirmeniz gerekir. Bu genellikle kötü bir şeydir, ve bu sadece yeni paradigmaya karşı sezgisel bir avantaj olduğunda gerçekleşir. Belki de emniyet kemerlerinin eklenmesi iyi bir örnektir; 50 yıl önce yeni geldin ve gittin, ama şimdi kilitlemek zorundasın, sezgisel avantaj, kaza geçirirsen ön camdan veya yolcu koltuğuna gitmemeniz. O zaman bile, sürücüler direndi; Birçok araç sahibi, kullanımlarını zorunlu kılan yasalar kabul edilinceye kadar emniyet kemerlerini araçtan kesti.