🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Circular Unit Reference (Circular Class Reference)

#346397
From: Roman Tyczka
Date: Wed, 07 Mar 2018 12:49
47 lines
2663 bytes
On Wed, 7 Mar 2018 04:25:26 -0800 (PST), immo wrote:

>>> Tak się nad tym zastanawiam jak to zrobić ładnie i dlatego proszę Was o
>>> jakieś propozycje. Żeby nie było, ja coś takiego mam działającego :) i
>>> napiszę na koniec jak to zrobiłem. Niemniej jest to w bardzo starej
>>> apce, którą chciałbym częściowo przepisać na nowo stąd moje pytanie, bo
>>> być może jest "ładniejszy" sposób na wykonanie tego.
>> 
>> Poszedłbym drogą generyków, czyli jakoś tak:
>> 
>> unit z corem:
>> 
>>   ICoreMain = interface
>>     function CoreConnection : ICoreConnection<ICoreMain>;
>>   end;
>> 
>> unit z toolem:
>> 
>>   ICoreConnection<I> = interface
>>     function CoreMain : I;
>>   end;
>> 
> 
> Nie wiem czy by to kodu nie zagmatwało za bardzo, w sensie za dużego naddatku kodu :)

Niby skąd? Przecież poza dodaniem generyka <I> nic więcej nie musisz
dopisywać, a dzięki temu likwidujesz zależność.

> Może nie wynikało to z pierwszego posta, ale ten Core może mieć więcej w sobie tych klas, a każda klasa może mieć w sobie także nielimitowaną ich ilość. Taka struktura drzewiasta :) Powiedzmy że nieokreślona na etapie projektowania...

Domyślam się, że tego jest więcej, pisałeś, że to uproszczony przykład.
 
> Wydaje mi się, że budowanie takiego interfejsu w pewnym momencie byłoby problemowe - a może nie?

Nie wiem, nie widzę tych zagrożeń :-)
 
> I zdaje sobie sprawę, że chce napisać coś, co jest silnie powiązane, a tendencje są takie żeby tego nie robić...

Toteż właśnie...

> Zresztą czytałem gdzieś ze wzorca singletona też nie powinno się używać :P

O tym nie chciałem nawet wspominać ;-)

-- 
pozdrawiam
Roman Tyczka
Technical Details
Message-ID: <1u4pd64cba5xs.dlg@tyczka.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <06e89078-c8b6-46f1-8353-fe26050464f7@googlegroups.com> <1f7uetk1q6zns.dlg@tyczka.com> <a9a0ea51-cda4-4d78-b162-30263f6da079@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Roman Tyczka <noemail@because.no>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Circular Unit Reference (Circular Class Reference)
Date: Wed, 7 Mar 2018 13:49:12 +0100
Organization: ATMAN - ATM S.A.
Lines: 47
Sender: romek@tyczka.no.found
Message-ID: <1u4pd64cba5xs.dlg@tyczka.com>
References: <06e89078-c8b6-46f1-8353-fe26050464f7@googlegroups.com> <1f7uetk1q6zns.dlg@tyczka.com> <a9a0ea51-cda4-4d78-b162-30263f6da079@googlegroups.com>
NNTP-Posting-Host: 94.75.90.137
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1520426952 6053 94.75.90.137 (7 Mar 2018 12:49:12 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Wed, 7 Mar 2018 12:49:12 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.84
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit