Tak, to znowu ja. Tym razem pisze w sekcji newbie więc może nie znajdzie mnie payl :P
Ale do rzeczy. Do tej pory pisałem głównie w delphi. Były to aplikacje okienkowe i nigdy specjalnie nie przejmowałem się klasami. Formatki tworzyłem kreatorem a on wstawiał niezbędny kod. Zajmowałem się procedurami obsługującymi przyciski.
Potem przyszedł czas na książkę do JAVY i tu w zasadzie poznałem programowanie obiektowe. Nie miałem jednak jeszcze okazji popisać zbyt wiele (jakieś początki na Androidzie).
Obecnie muszę wykazać się sensowną strukturą klas w małym projekcie który mi zlecono. Nie wyrobiłem sobie jeszcze chyba odpowiedniego sposobu myślenia Jeśli chodzi o OOP dlatego chciałem prosić o jakąś podpowiedź.
Stworzyłem szereg funkcji obsługujących pewien format tekstowy oraz formatkę prezentującą ich działanie. Funkcje rozłożyłem w dwóch modułach, formatka jest na kolejnym. Nie sądzę jednak, żeby to było "profesjonalne" rozwiązanie sprawy. Zleceniodawca oczekuje ode mnie większego skupienia się na koncepcji klas.
Oto przykładowy plik, który obsługuje:
-IdentDostawcy----StandardPL-IdentOdbiorcy-DataWystawienia
FAH/1319/93/95 1 120027 03.01.19
-KSBLOZ-------NazwaTowaru--------------------------------Ilosc---
116590111000 Vit. A kaps. 12,000 j.m. 50 szt. 10.000
116590311000 Vit. A plyn 50.000 j.m./1ml 10 ml 5.000
119530111009 Vit. A+D3 (2000j.m.A+1000j.m kaps. 50 szt. 5.000
119530311057 Vit. A+D3 solutio aquosa krople 10ml 5.000
Plik może mieć różną zawartość kolumn w części nagłówka jak i części głównej oraz dowolną liczbę rekordów.
Stworzyłem już funkcje odpowiedzialne za:
*zliczanie ilości znaków w kolumnach (osobno dla nagłówka i części głównej)
*zliczanie ilości kolumn (osobno dla nagłówka i części głównej)
*zwracanie nazw kolumn w tablicy lub pojedynczo(osobno dla nagłówka i części głównej)
*zwracanie tablicy wielowymiarowej z polami głównej części pliku
*zwracanie wartości dowolnej kolumny przy podanym KSBLOZ
Dopisze jeszcze:
*dopisywanie nowego wiersza
*usuwanie wybranego wiersza
*modyfikowanie dowolnej wartości
Mój dylemat:
Wiadomo, że muszę mieć jedną formatkę, która jest klasą dziedziczącą po TForm i przyznam bez bicia nie wiem jakie inne klasy mógłbym stworzyć by projekt był bardziej przejrzysty. Wydaje mi się on tak niewielki, że najchętniej wszystko zmieściłbym w jednej :/ Jednak muszę na siłę poupychac to do klas, eby pokazać, że potrafię na nich operować.
Myślałem o następujących klasach:
*TMain - formatka do prezentacji
*TColumns - zawierająca metody obsługujące parsowanie wierszy z kolumnami
*TRecords - zawierająca metody obsługujące parsowanie wierszy z rekordami
*TEditData - zawierająca metody obsługujące modyfikowanie pojedynczych wartosci w pliku, dodawanie i usuwanie wierszy
Może ktoś będzie miał dla mnie lepszą propozycje struktury