🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Circular Unit Reference (Circular Class Reference)

#346396
From: immo
Date: Wed, 07 Mar 2018 12:25
51 lines
3076 bytes
W dniu środa, 7 marca 2018 13:03:42 UTC+1 użytkownik Roman Tyczka napisał:
> On Wed, 7 Mar 2018 01:45:20 -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 :)
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...

Core
|-Connection
| |-MainConnection
| | |-cosTamX
| | |-...
| | \-cosTamXX
| |-...
| \-ConnectionX
|-Tools
|-Logic
| |-Logic1
| |-...
| \-LogicX
|-OtherFN
|-...
\-OtherFN_X

Wydaje mi się, że budowanie takiego interfejsu w pewnym momencie byłoby problemowe - a może nie?

I zdaje sobie sprawę, że chce napisać coś, co jest silnie powiązane, a tendencje są takie żeby tego nie robić...
Zresztą czytałem gdzieś ze wzorca singletona też nie powinno się używać :P

pozdrawiam,
Przemek O.
Technical Details
Message-ID: <a9a0ea51-cda4-4d78-b162-30263f6da079@googlegroups.com>
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!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!r195no120307itc.0!news-out.google.com!a2ni842ite.0!nntp.google.com!e10no277900itf.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <06e89078-c8b6-46f1-8353-fe26050464f7@googlegroups.com> <1f7uetk1q6zns.dlg@tyczka.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.36.108.81 with SMTP id w78mr14412610itb.43.1520425526857;        Wed, 07 Mar 2018 04:25:26 -0800 (PST)
X-Received: by 10.157.1.9 with SMTP id 9mr1159908otu.8.1520425526602; Wed, 07 Mar 2018 04:25:26 -0800 (PST)
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!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!r195no120307itc.0!news-out.google.com!a2ni842ite.0!nntp.google.com!e10no277900itf.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi
Date: Wed, 7 Mar 2018 04:25:26 -0800 (PST)
In-Reply-To: <1f7uetk1q6zns.dlg@tyczka.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.65.28.194; posting-account=uWBjDgoAAACxkgIP6dtE4dpCnc16V86n
NNTP-Posting-Host: 77.65.28.194
References: <06e89078-c8b6-46f1-8353-fe26050464f7@googlegroups.com> <1f7uetk1q6zns.dlg@tyczka.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a9a0ea51-cda4-4d78-b162-30263f6da079@googlegroups.com>
Subject: Re: Circular Unit Reference (Circular Class Reference)
From: immo <przemek-o@soft-system.pl>
Injection-Date: Wed, 07 Mar 2018 12:25:26 +0000
X-Received-Body-CRC: 1443674477
X-Received-Bytes: 3297
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit