Проектиране на класове за C приложение
Най-добрият начин да проектирате софтуер е да използвате мозъка си.
и като цяло, преди да проектирате йерархията на класовете, вие си отговорихте на въпроса: И какъв подход трябва да използвам при проектирането? Подходящ ли е OO подходът за моята задача?
Мисля, че е необходимо да се започне не от лицето със структурата от данни, която трябва да се покаже, което е самият обект , обработван от програмата.
SR> Разбирам. Но се интересувам от описанието на цялата методология на проектиране от SR> изследване на обекта, който се моделира, преди да се създаде описание на което SR> трябва да има програма - йерархия на класове или описание на модули и SR> процедури (с процедурен подход). Къде мога да прочета за това? Този проблем "как да проектирам правилно" е в много отношения подобен на проблема пред който е изправен някой млад художник "как да изгради композиция правилно" - аналогията е допълнително подсилена от факта, че отговорът и на двата въпроса е почти един и същ:
Наистина, има голям брой трактати по темата "как" на най- различни нива - от свръхобщо до почти специално. За съжаление, според мен, те се отнасят най-вече до философията (и тази дума се превежда като "любов към мъдростта"), отколкото към реалните неща. Полезно е да ги четат (по мое субективно мнение) само за тези, които сами ще пишат същите книги. ;-)
Реално, колкото и да се върти човечеството, проектирането ще се сведе до следния ред: 0. Изследването на вече съществуващи аналози на решения на нашия проблем, както и системи, включващи се в някои близки технологии - това е много важно, между другото . 1. Обмисляне (както вече беше споменато тук) на основните структури от данни, с които ще трябва да работите. 2. Очертанията на „йерархията на класовете“ (както я наричате) вкоито "опаковате" вашите структури от данни. 3. Създаване на първия вариант по идеите, получени в п.п. 1 и 2. 4. Корекция на резултатите от т.п. 1 и 2 въз основа на получената опция за оформление . 5. Усъвършенстване на оформлението или преработване на всичко наново.
Е, и всичко в такъв дух. Единственото нещо, което остава да добавим е, че ако задачата е доста сложна и обектите с данни са много разнородни и несистематични, тогава един от хубавите пътища е да се разработи "система за поетапно развитие", която ще осигури известна допълнителна гъвкавост (въпреки че ще ви върже ръцете до известна степен). Не напразно има скриптове в Office или в AutoCAD. ;-)