Avatar
Dominik Klapuch:

Ahoj,

dělám jídelní lístek a potřebuji zde zamezit duplicitě kódu. Mám třídu JídelníListekPage a DenniNabidkyPage. Obě třídy mají metody jako update, delete, insert, které mají stejný počet parametrů.

Šlo by jednoduše použít dědičnost, ale trápí mě situace, kdy budu chtít třeba do metody update u třídy DenniNabidkyPage přidat další parametr - to samé bych poté musel přidat pro metodu insert. Tím by se mi dědičnost zkomplikovala než zjednodušila.

Metoda update vypadá takto:

public function update($ids = [], $names = [], $prices = []) {
        $this->csrf->isTimeout();
        $names = $this->validator->validateNames($names);
        $prices = $this->validator->validatePrices($prices);
        return $this->storage->update($ids, $names, $prices);
}

Mám tedy tyto dvě třídy nechat samostatně oddělené či hledat jiný způsob?

Děkuji za rady.

Editováno 19.10.2014 0:55
Odpovědět 19.10.2014 0:54
Kód a data patří k sobě.
Avatar
hanpari
Redaktor
Avatar
Odpovídá na Dominik Klapuch
hanpari:

Překrývání metod?

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 19.10.2014 7:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.