🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346108

Re: Delphi XE2 FM MVC

#346108
From: J-23
Date: Sun, 01 Oct 2017 14:24
62 lines
3780 bytes
W dniu 28.09.2017 o 11:51, konsul41@wp.pl pisze:
> Interesuje mnie jak w Delphi wykonuje się MVC
> 

Wszystko zależy co potrzebujesz. Gotowego Fremworka bazującego na MVC ci 
nie podsune w Delphi ale powiem swoje spostrzeżenia nt MVC

Teoria mówi by wszystkie trzy elementy były ze sobą luzno powiązane - 
znaczy to tyle że w teorii każdy z tych elementów powinien być wymienny

To napewno znasz - ale teraz musisz zdać sobie sprawę co ci tak naprawdę 
jest potrzebne - gdzie zaczyna się tak naprawdę Model - Widok - Kontroler

> 
> 
> Mam model który ma takie właściwości i jest fakturą.
> 
> property dok_id: Integer read Getdok_id write Setdok_id;
>      property OkresKsiegowy: TOKres read GetOkresKsiegowy write 
> SetOkresKsiegowy;
>      property NazwaDziennika: string read GetNazwaDziennika write 
> SetNazwaDziennika;
>      property NumerDziennika: Integer read GetNumerDziennika write 
> SetNumerDziennika;
>      property NumerDokumentu: string read GetNumerDokumentu write 
> SetNumerDokumentu;
>      property DataRej: TDate read GetDataRej write SetDataRej;
>      property DataDok: TDate read GetDataDok write SetDataDok;
>      property DataPodatkowa: TDate read GetDataPodatkowa write 
> SetDataPodatkowa;
> 
> Jak teraz do niego dorobić pozostałe dwie części
> Kontroler i Widok.
> 

Bazując na podanej klasie sprawa jest prosta w kontroler wsadzasz 
wszystkie operacje jakie możesz wykonać na tej fakturze i tyle

Ja jak pisałem jeszcze w Delphi stworzyłem sobie komponent do Faktur 
gdzie opierał on się o MVC tylko ja to miałem podzielone troszkę wyżej 
nuż ty tutaj próbujesz zrobić u mnie modelem było wszystko to co było 
związane z bazą danych - kontroler był też dość rozbudowany bo posiadał 
i zarządzanie bazą (wszystkie operacje wykonywane na bazie itp nawet 
formatki niektóre tak by łatwo wymieniać pewną funkcjonalności) a jako 
widok obrałem sobie poszczególne wzory faktur.

Z tego co napisałem wyżej były jeszcze wydzielone pakiety odpowiedzialne 
m,in za działanie na poszczególnych silnikach bazodanowych

Podsumowując nie traktuj MVC jako 1:1 czyli jedna klasa to pojedynczy 
element problemu. Głownym zadaniem MVC jest podzielenie tego na 
odpowiednie elementy

możesz oczywiście podchodzić tak ze jedna klasa jedna czynność z MVC ale 
wtedy się łatwo po gubić

We wspomnianym komponencie do fakturowania miałem w ten sposób łatwą 
możliwość wymiany wzorów dokumentów oraz silników baz danych wszystko 
sprowadzało się do tego że kładłem wybrane elementy na formę.
Bez skrobania jakiegokolwiek kodu

Pozdrawiam
Technical Details
Message-ID: <59d0fa8b$0$653$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer01.am4!peer.am4.highwinds-media.com!peer03.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <oqigml$b4t$1@portraits.wsisiz.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer01.am4!peer.am4.highwinds-media.com!peer03.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Delphi XE2 FM MVC
Newsgroups: pl.comp.lang.delphi
References: <oqigml$b4t$1@portraits.wsisiz.edu.pl>
From: J-23 <Baczeklu@poczta.fm>
Date: Sun, 1 Oct 2017 16:24:11 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <oqigml$b4t$1@portraits.wsisiz.edu.pl>
Lines: 63
Message-ID: <59d0fa8b$0$653$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 188.146.98.8
X-Trace: 1506867851 unt-rea-b-01.news.neostrada.pl 653 188.146.98.8:2699
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Body-CRC: 3720986503
X-Received-Bytes: 3702
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit