Bunu yapmak için iyi nedenler ya da motivasyon bulamıyorum zaman nesne yönelimli programlama kullanarak nokta nedir?
Sen nesneler gibi fikirleri gebe ve işlemek için ihtiyaç tarafından motive edilmelidir. Orada ihtiyaç kavramları algı olmak hissediyorum insanlar, akış veya fonksiyonları yerine nesnelerdir ve bunlar daha sonra kavramları, fikirleri, ya da fonksiyonel akışına doğru yönlendirilmiş programlama doğru motive.
13 yıl önce, ben gerekli fikirler vardı çünkü c den c + + açık ama c kolayca gerçekleştirmek olmaz. Kısacası, benim ihtiyaç nesnelere yönelik benim programlama motive.
The object-oriented mind-set
İlk olarak, bayt, karakter, tamsayı ve ondalıklı sayı var.
Then your programme starts being cluttered with all kinds of variables, local and static.
Then you decide to group them into structs because you figured that all the variables which are commonly passed around.
Conglomeration of data
Yazıcının bilgisi Yazıcı yapı içine kapalı tüm değişkenleri olmalıdır şöyle:
{id, name, location,
impactType(laser|inkjet|ribbon),
manufacturer, networkAddr},
etc.
Yazıcı bilgi over fonksiyonu sonra işlevini çağırdığınızda Yani şimdi, bağımsız değişkenler uzun bir liste veya çapraz konuşma büyük olanakları ile statik değişkenler geniş bir koleksiyona sahip işlevleri yok.
Incorporation of information
Ancak veri yığını yeterince iyi değil. Ben hala verileri işlemek için fonksiyonları bir demet bağımlı olmak zorunda. Bu nedenle, ben akıllı bir fikrim vardı ya Yazıcı yapı içine işlev işaretçileri dahil.
{id, name, location,
impactType(laser|inkjet|ribbon),
manufacturer, networkAddr,
*print(struct printer),
*clean(struct printer)
}
Veri / verileri algıladıkları tedavi konusunda süreçleri içeriyorsa veriler bilgi içine mezunları.
Quantization of information
Şimdi lazer, şerit ve mürekkep püskürtmeli yazıcılar tüm bilgilerin aynı set yok ama onlar tüm bilgi paydalar (LCD) bir çoğu ortak bir dizi var:
Her yazıcı için ortak Bilgisi: id, isim, yer, vb
Bilgi sadece şerit yazıcılarda bulunan: usedCycles, şerit (kumaş | selofan), colourBands, vb
Bilgi inkjet sadece bulundu: mürekkep kartuşları, vb
Bilgi lazerler sadece bulundu: ...
Bana ve birçok nesne yönelimli kuşaklar için, biz bir ortak bilgi kapsülleme içine tüm ortak bilgi nicemlemek, yerine her bir yazıcı türü için ayrı bir yapı / kapsüllemeyi tanımlamak için tercih.
Sonra, biz bütün bu yazıcılar baskı ya da aynı şekilde temizlenir, çünkü her yazıcı türü için tüm işleve başvuran yönetecek bir çerçeve kullanmayı tercih.
Bu yüzden uzak nesnelerden odaklı sizin tercihiniz / motivasyon nesneleri kullanmak istemiyorsanız, programlama hayatı daha kolay olduğunu söylüyor? Tüm sağlayan yapısal karmaşıklığı kendinizi yönetmeyi tercih olduğunu. Bunu bu şekilde hissetmek için yeterli yazılım yazdım olmamalıdır.
The necessity of laziness
Bazı insanlar demek - zorunluluk yaratıcılık anasıdır. (Yanı sıra, para Aşk kötülüğün köküdür).
Ama benim ve benim kohortlarda - zorunluluk karşısında tembellik yaratıcılık anne. (Yanı sıra para olmaması kötülüğün diğer üstüdür).
Bu nedenle, kısa yol ilkesi hayata tekme olurdu böylece programlama doğru tembel bir tutum benimsemeye teşvik ve bulacaksınız ama nesneler ile programlama doğru kendinizi yönlendirilmesi yönünde mezun daha başka seçeneğim yok.