Desenler karmaşıktır
Tüm tasarım desenleri dikkatli kullanılmalıdır. Bence , hemen bir model uygulamak yerine, bunu yapmak için geçerli bir neden olduğunda kalıpları yeniden gözden geçirmelisiniz . Kalıpları kullanmanın genel sorunu, karmaşıklık katmalarıdır. Modellerin aşırı kullanımı, belirli bir uygulamayı veya sistemi daha da geliştirmek ve sürdürmek için zahmetli hale getirir.
Çoğu zaman basit bir çözüm vardır ve herhangi bir özel kalıp uygulamanıza gerek kalmaz. İyi bir temel kural, kod parçalarının değiştirilmesi veya sık sık değiştirilmesi gerektiğinde bir model kullanmak ve bir model kullanırken karmaşık kod uyarısını almaya hazır olmaktır.
Kodunuzda değişikliği desteklemek için pratik bir ihtiyaç görürseniz , amacınızın basitlik olması ve bir kalıp kullanmanız gerektiğini unutmayın .
Kalıplar üzerindeki ilkeler
Aşırı tasarlanmış ve karmaşık çözümlere yol açabileceklerse, kalıpları kullanmak bir tartışma gibi görünebilir. Bununla birlikte, bir programcı için modellerin çoğunun temelini oluşturan tasarım tekniklerini ve ilkelerini okumak çok daha ilginçtir . Aslında , 'tasarım kalıpları' üzerine en sevdiğim kitaplardan biri, söz konusu modele hangi ilkelerin uygulanabilir olduğunu yineleyerek bunu vurguluyor . Alaka düzeyi açısından modellerden faydalı olacak kadar basittirler. Kodunuzun modülleri oluşturabildiğiniz sürece , ilkelerden bazıları, Liskov İkame İlkesi gibi nesne yönelimli programlamadan (OOP) daha fazlasını kapsayacak kadar geneldir .
Çok sayıda tasarım ilkesi vardır, ancak GoF kitabının ilk bölümünde açıklananlar başlamak için oldukça yararlıdır.
- Bir 'uygulama' değil, bir 'arayüz' için programlayın. (Dörtlü Çete 1995: 18)
- "Nesne bileşimini" "sınıf kalıtımına" tercih edin. (Dörtlü Çete 1995: 20)
Bir süreliğine bunların içine kapılmasına izin ver. GoF yazıldığında, arayüzün Java veya C # tür olarak arayüzle karıştırılmaması gereken, soyutlama olan (süper sınıflar anlamına gelen) herhangi bir şey anlamına geldiği unutulmamalıdır . İkinci ilke, maalesef bugün hala yaygın olan, gözlemlenen aşırı miras kullanımından kaynaklanmaktadır .
Oradan , Robert Cecil Martin (aka Bob Amca) tarafından bilinen SOLID ilkelerini okuyabilirsiniz . Scott Hanselman, Bob Amca ile bu ilkeler hakkında bir podcast'te röportaj yaptı :
- Tek Sorumluluk İlkesi
- O pen Kapalı Prensibi
- L iskov İkame Prensibi
- Ben ayrılığı prensibi nterface
- D ependency Reversiyon Prensibi
Bu ilkeler, meslektaşlarınızla okumak ve tartışmak için iyi bir başlangıçtır. İlkelerin birbiriyle ve kaygıların ayrılması ve bağımlılık aşılama gibi diğer süreçlerle iç içe geçtiğini görebilirsiniz . Bir süre TDD yaptıktan sonra, izole ve tekrarlanabilir birim testleri oluşturmak için bunları bir dereceye kadar takip etmeniz gerektiğinden, bu ilkelerin doğal olarak pratikte geldiğini görebilirsiniz .