Profesyonel bir programcı olmadığınız için basitliğe sadık kalmanızı tavsiye ederim. Programcı için modülerleştirilmiş, prosedürel kodunuzu alıp daha sonra OO yapması çok daha kolay olacaktır, kötü yazılmış bir OO programını düzeltmelerinden daha kolay olacaktır. Eğer tecrübeli değilseniz, size ya da peşinizden gelen herkese yardımcı olmayacak, kutsal olmayan bir karmaşaya dönüşebilecek OO programları oluşturmak mümkündür.
Sanırım ilk içgüdünüz, ilk örnekte "bu şey - o şey" kodu doğru yol. Ne yapmak istediğiniz açık ve açıktır. Kod verimliliği konusunda fazla endişelenmeyin, açıklık çok daha önemlidir.
Bir kod segmenti çok uzunsa, her biri kendi işlevine sahip olan ısırık boyutundaki parçalara bölün. Çok kısaysa, daha az modül kullanmayı ve daha fazla sıraya koymayı düşünün.
---- Postscript: OO Tasarım Tuzakları
OO programlama ile başarılı bir şekilde çalışmak zor olabilir. Tüm modelin kusurlu olduğunu düşünen bazı insanlar bile var . Java'da Thinking (şimdi 4. baskısında) olarak adlandırılan OO programlamasını ilk öğrendiğimde kullandığım çok iyi bir kitap var . Aynı yazarın C ++ için ilgili bir kitabı var. Programcılarla ilgili olarak nesne yönelimli programlamada ortak tuzaklarla uğraşan başka bir soru daha var .
Bazı tuzaklar karmaşıktır, ancak problemleri çok temel yollarla oluşturmanın birçok yolu vardır. Örneğin, birkaç yıl önce şirketimde miras aldığım bazı yazılımların ilk sürümünü yazan bir stajyer vardı ve olabilecek her şey için arayüzler yaptıbir gün birden fazla uygulamaya sahiptir. Tabii ki, vakaların% 98'inde şimdiye kadar sadece tek bir uygulama vardı, bu yüzden kod, bir arayüz çağrısına geri adım atamayacağınız için hata ayıklamayı çok can sıkıcı hale getiren kullanılmayan arabirimlerle yüklendi, böylece bir uygulama için metin araması (şimdi IntelliJ'i kullanmama rağmen "Tüm Uygulamaları Göster" özelliği vardı, ancak o günlerde buna sahip değildim). Buradaki kural prosedürel programlama ile aynıdır: her zaman bir şeyi sabit kodlayın. Sadece iki veya daha fazla şeyiniz olduğunda bir soyutlama yaratın.
Benzer bir tasarım gaflaması Java Swing API'sinde bulunabilir. Swing menü sistemi için bir yayınla-abone olun modeli kullanırlar. Bu, Swing'de menü oluşturma ve hata ayıklama işlemlerini eksiksiz bir kabus haline getirir. İroni, tamamen anlamsız olmasıdır. Birden fazla işlevin bir menü tıklamasına "abone olması" gereken neredeyse hiçbir durum yoktur. Ayrıca, yayınla-abone ol tam bir tekleme oldu çünkü bir menü sistemi normalde her zaman kullanılıyor. İşlevler abone oluyor ve ardından rastgele çıkıyor gibi değil. Sun'daki "profesyonel" geliştiricilerin böyle bir gaf yaptığı gerçeği, profesyonellerin bile OO tasarımında anıtsal vidalama yapmasının ne kadar kolay olduğunu gösteriyor.
OO programlama konusunda onlarca yıllık deneyime sahip çok uzman bir geliştiriciyim, ancak bilmediğim tonlar olduğunu ilk itiraf bile edeceğim ve şimdi bile çok fazla OO kullanma konusunda çok temkinliyim. Belirli tasarımların nasıl yapılacağı konusunda OO zealotu olan bir iş arkadaşından uzun dersler dinlerdim. Ne yaptığını gerçekten biliyordu, ama dürüst olmak gerekirse, programlarını anlamakta zorlandım çünkü böyle sofistike tasarım modelleri vardı.