Article View: pl.comp.lang.php
Article #232142Re: Dependecy injection - jak to działa?
From: Marek S
Date: Thu, 03 Jan 2019 20:35
Date: Thu, 03 Jan 2019 20:35
43 lines
2436 bytes
2436 bytes
W dniu 2019-01-02 o 22:18, Borys Pogoreło pisze:
>> Sądzisz, że tak? Ja nie bardzo sobie wyobrażam jak wywołać funkcję i
>> przekazać jej parametry zgodnie z fantazją twórcy tejże funkcji.
>> Instanceof działa post factum. Tymczasem typy argumentów trzeba znać
>> _ZANIM_ wywoła się daną funkcję.
>
> To chyba normalne w każdym normalnym [1] języku obsługującym typowanie?
Chyba się nie rozumiemy. To moim zdaniem nie mocno nienormalne. Może
opiszę to częściowo kodem. Piszemy klasę framework i metodę run():
abstract class framework {
private function run() {
switch (wezTypArgumentuProgramisty( $this->execute) {
case User: $this->execute(new User); break;
case Dog: $this->execute(new Dog); break;
}
$this->execute("abc");
}
abstract protected function execute($param) {}
}
Programista pisze dwie klasy dziedziczące w/w i nadpisujące metodę execute:
class mine1 extends framework {
protected function execute(User $user) { do something }
}
class mine2 extends framework {
protected function execute(Dog $dog) { do something }
}
Czy takie programowanie jest normalne, gdzie programista wymyśla sobie
argumenty do funkcji a framework krakuje klasy potomne programisty w
celu wyłuskania typów oczekiwanych argumentów i takie je przekazuje?
--
Pozdrawiam,
Marek
Technical Details
Message-ID:
<q0lrml$ral$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<pv1eid$s19$1@node2.news.atman.pl> <slrnq18hch.a42.wojciech.bancer@pl-test.org> <zh5xsvsue6hi$.1dwdbwvgnw36w$.dlg@40tude.net> <q0j6nq$b92$2@node2.news.atman.pl> <65gtnyttdedm.eb9c8v75r5ke.dlg@40tude.net>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: Marek S <precz@spamowi.com> Newsgroups: pl.comp.lang.php Subject: Re: Dependecy injection - jak to działa? Date: Thu, 3 Jan 2019 21:35:21 +0100 Organization: ATMAN - ATM S.A. Lines: 43 Message-ID: <q0lrml$ral$1@node2.news.atman.pl> References: <pv1eid$s19$1@node2.news.atman.pl> <slrnq18hch.a42.wojciech.bancer@pl-test.org> <zh5xsvsue6hi$.1dwdbwvgnw36w$.dlg@40tude.net> <q0j6nq$b92$2@node2.news.atman.pl> <65gtnyttdedm.eb9c8v75r5ke.dlg@40tude.net> NNTP-Posting-Host: 89-70-94-204.dynamic.chello.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1546547733 27989 89.70.94.204 (3 Jan 2019 20:35:33 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Thu, 3 Jan 2019 20:35:33 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 In-Reply-To: <65gtnyttdedm.eb9c8v75r5ke.dlg@40tude.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit