Potřebuji vyhodnotit určitou situaci a to různými způsoby. Výsledkem má být jediná hodnota true nebo false, pokud jeden ze způsobů vrátí false. Předávám všem stejný společný parametr (vlastní objekt). Jde mi o to, že je velmi pravděpodobné, že v budoucnu budu přidávat další způsoby vyhodnocení a chtěl bych to navrhnout tak, abych již musel co nejméně zasahovat do kódu a ideální by bylo jen přidat další třídu (pro vyhodnocení). Pokusím se o praktický příklad: řekněme, že by se jednalo o řízení nějakého stroje. Mám dané, opakující se vstupní hodnoty (teplota vody, teplota oleje, tlak oleje, tlak vody apod.). V nějakém pravidelném intervalu by mělo proběhnout vyhodnocení provozního stavu všech hodnot (série různých kontrol/tříd) a v případě nějaké anomálie provést zastavení stroje - tedy ta požadovaná jediná návratová hodnota false (jestliže jeden z parametrů nevyhovuje). V mém případě vyžaduje vyhodnocení každé hodnoty určitý samostatný výpočet (nejedná se o pouhé porovnání se vzorovou hodnotou) a proto jsem uvažoval o samostatných třídách pro každou kontrolu. Dále se předpokládá, že do budoucna dojde k přidávání dalších kontrol. Předpokládám, že by se pro jednotlivé kontroly vytvořil nějaký společný vzor, aby se dědily společné vlastnosti.
|