Peter, boğa gözünün önünde kırmızı bir paçavra gibi OOP var. Başka hiçbir başlıkta sizinle olduğu kadar çok OOP tartışması yok. Ve bu, tüm bu zaman boyunca bu OOP üzerine tek bir program yazmamış olmanıza rağmen. Bütün bunları tuhaf bulmuyor musun?
Vasiliy Sokolov : Peter, boğa gözünün önünde kırmızı bir paçavra gibi OOP var. Başka hiçbir başlıkta sizinle olduğu kadar çok OOP tartışması yok. Ve bu, tüm bu zaman boyunca bu OOP üzerine tek bir program yazmamış olmanıza rağmen. Bütün bunları tuhaf bulmuyor musun?
Ben sadece önerileri yanıtlıyorum, yaklaşımımın içinde OOP kullanın . Bu yaklaşımlar uyumlu değildir.
Bu nedenle, neden içinde OOP sözdizimini kullanmadığımı açıklamadan yaklaşımımı daha fazla açıklamaya devam edeceğim.
Bir şeyi anlamıyorsanız, onu kullanmanıza asla gerek olmayabilir. Bu nedenle, mega-kütüphanelerinizde ne yaparsanız yapın, OOP'ye "ihtiyaç" olmayacaktır.
Öyleyse, basit başlayalım. Proto-çekirdeğin içinde bir eleman prototipi oluşturun:
int P_CORE[ 3 ][ 5 ] = {
//Основание кнопки.-----------------------------//// X Y X_SIZE Y_SIZE COLOR //----------------------------------------------
{ 100 , 100 , 200 , 50 , C'245,245,245' },
//---------------------------------------------- //Текст кнопки.---------------------------------//// X Y X_SIZE Y_SIZE COLOR //----------------------------------------------
{ 120 , 120 , 0 , 0 , C'245,0,0' },
//---------------------------------------------- //Иконка кнопки.-------------------------------- //// X Y X_SIZE Y_SIZE COLOR
{ 140 , 140 , 16 , 16 , 0 },
//----------------------------------------------
};
P_CORE - массив. Я называю его прото-ядром, потому что он содержит прототип элемента, который далее будет изменен.
Элемент кнопка состоит из 3-ех объектов. Каждому из них мы предоставили 5 свойств.
#define BASE 0#define TEXT 1#define ICON 2//-------------------#define X 0#define X_SIZE 1#define Y 2#define Y_SIZE 3#define BG_COLOR 4#define TEXT_COLOR 4//-------------------
//Вот как будут выглядеть обращения к свойствам элемента:
P_CORE[BASE][X]
P_CORE[BASE][Y]
P_CORE[BASE][X_SIZE]
P_CORE[BASE][Y_SIZE]
P_CORE[BASE][COLOR]
P_CORE[TEXT][X]
P_CORE[TEXT][Y]
P_CORE[TEXT][X_SIZE]
P_CORE[TEXT][Y_SIZE]
P_CORE[TEXT][COLOR]
P_CORE[ICON][X]
P_CORE[ICON][Y]
P_CORE[ICON][X_SIZE]
P_CORE[ICON][Y_SIZE]
P_CORE[ICON][COLOR]
Peter, boğa gözünün önünde kırmızı bir paçavra gibi OOP var. Başka hiçbir başlıkta sizinle olduğu kadar çok OOP tartışması yok. Ve bu, tüm bu zaman boyunca bu OOP üzerine tek bir program yazmamış olmanıza rağmen. Bütün bunları tuhaf bulmuyor musun?
Ben sadece önerileri yanıtlıyorum, yaklaşımımın içinde OOP kullanın . Bu yaklaşımlar uyumlu değildir.
Bu nedenle, neden içinde OOP sözdizimini kullanmadığımı açıklamadan yaklaşımımı daha fazla açıklamaya devam edeceğim.
Ben kullanmıyorsam buna gerek yok.
Her iki tez de yanlıştır.
konu başlatıcıyı sürüklemeyin! zaten 6 sayfa ve göstermek istediği şey henüz net değil, her şeyin çekirdekle ilgili olduğu açık )))
bir örnek gösterecek, sonra onu OOP'nin yazılım geliştirme süresini azalttığına ikna edeceğiz;)
Ben kullanmıyorsam buna gerek yok.
Bir şeyi anlamıyorsanız, onu kullanmanıza asla gerek yoktur. Bu nedenle, mega-kütüphanelerinizde ne yaparsanız yapın, OOP'ye "ihtiyaç" olmayacaktır.
Bir şeyi anlamıyorsanız, onu kullanmanıza asla gerek olmayabilir. Bu nedenle, mega-kütüphanelerinizde ne yaparsanız yapın, OOP'ye "ihtiyaç" olmayacaktır.
Öyleyse, basit başlayalım. Proto-çekirdeğin içinde bir eleman prototipi oluşturun:
Ve böylece, eleman proto-çekirdekte genişletilmiş, tablo biçiminde sunulur.
Tablo görünümün avantajları vardır. Her şeyden önce - döngüler halinde.
Şimdi bir eleman oluşturacak bir fonksiyon yazalım.
Ama önce, kolayca erişilebilmesi için öğenin özelliklerini tanımlar aracılığıyla tanımlayalım.
//Вот как будут выглядеть обращения к свойствам элемента: P_CORE[BASE][X] P_CORE[BASE][Y] P_CORE[BASE][X_SIZE] P_CORE[BASE][Y_SIZE] P_CORE[BASE][COLOR] P_CORE[TEXT][X] P_CORE[TEXT][Y] P_CORE[TEXT][X_SIZE] P_CORE[TEXT][Y_SIZE] P_CORE[TEXT][COLOR] P_CORE[ICON][X] P_CORE[ICON][Y] P_CORE[ICON][X_SIZE] P_CORE[ICON][Y_SIZE] P_CORE[ICON][COLOR]Bir buton oluşturacak bir fonksiyon yazıyoruz:
Elbette, biri çekirdeğe ihtiyaç olmadığını söyleyecektir. Böyle bir çağrı yeterlidir:
ve her şey aynı olacak. Evet, ama sadece başlangıçta. Böyle bir meydan okuma ile ilgili sorun, normal olarak geliştirilememesidir.
Her elemanın özelliklerinin global bellekte sıralanmasını ve bunlara en basit şekilde erişilmesini istiyoruz.